Mark Spanbroek
c7b18af7cd
Deploy 2 versions of the marketplace on local network
...
One with the real Groth16 verifier,
and one with a dummy verifier used for testing.
2024-01-31 15:45:01 +01:00
Adam Uhlíř
331bc56e8f
feat: zkey hash in marketplace config ( #81 )
2024-01-30 06:36:27 +01:00
Mark Spanbroek
5d2842c69b
Deploy verifier with verifier key per network
2024-01-25 13:08:10 +01:00
Mark Spanbroek
6baf80d6f4
Refactor verifier contract: remove preprocessing
2024-01-25 13:08:10 +01:00
Mark Spanbroek
39a2d56a63
Refactor verifier contract: verification key as parameter
2024-01-25 13:08:10 +01:00
Mark Spanbroek
33614ee218
Calculate public inputs for ZK proof verificition
2024-01-25 13:08:10 +01:00
Mark Spanbroek
38411c27ca
Move submitProof() function to Marketplace
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e6a918fed9
Submit proof as Groth16Proof struct
2024-01-25 13:08:10 +01:00
Mark Spanbroek
1af40f1790
Read proof from file in test
2024-01-25 13:08:10 +01:00
Mark Spanbroek
3e3f2307d8
Remove GPL'ed verifier, replace by MIT verifier
2024-01-25 13:08:10 +01:00
Mark Spanbroek
e59f0f961e
Submit proofs as array of bytes
2024-01-25 13:08:10 +01:00
Mark Spanbroek
327ae14112
Formatting with prettier
2024-01-25 13:08:10 +01:00
Adam Uhlíř
0d9b67bb31
feat: verifier integration
2024-01-25 13:08:10 +01:00
Adam Uhlíř
14e453ac31
feat: partial payouts for cancelled requests ( #69 )
2023-10-16 11:14:02 +02:00
Mark Spanbroek
24ef30bd2a
[proofs] improve test to check proof probability
...
- avoid bias due to pointer downtime
- use statistical binomial test
2023-01-30 14:47:37 +01:00
Mark Spanbroek
c9b51695aa
[proofs] support probability 1 (proofs always required)
2023-01-30 14:47:37 +01:00
Mark Spanbroek
ae70fd7c6f
[marketplace] introduce MarketplaceConfiguration struct
...
Container for all configuration values, replaces separate
constructor parameters and getters.
2023-01-23 15:10:23 +01:00
Mark Spanbroek
91ccc82d49
[proofs] remove dead code
2023-01-23 15:10:23 +01:00
Mark Spanbroek
c8dda37300
[marketplace] introduce SlotState
...
- replace proofEnd() by slotState()
- replace _slotAcceptsProofs() by slotState()
- remove _stopRequiringProofs()
2023-01-23 15:10:23 +01:00
Mark Spanbroek
af08a72d7d
Fix: use slot start instead of request start
...
Proofs should be required from the moment a slot is filled,
not from the moment a request is submitted.
This reverts commit f224cb8eda
.
2023-01-12 13:49:08 +01:00
Mark Spanbroek
c0690cd5d1
[Proofs] rename expectProofs -> startRequiringProofs
2023-01-11 10:27:08 +01:00
Mark Spanbroek
f224cb8eda
[Proofs] Remove double administration of request start
...
The timestamp when proofs start to be required was
stored in both the Marketplace and Proofs. It is now
only stored in the Marketplace.
2023-01-11 10:27:08 +01:00
Mark Spanbroek
f8e9f3c848
[Proofs] Remove double administration of request end
...
The timestamp when proofs no longer are required was
stored in both the Marketplace and Proofs. It is now
only stored in the Marketplace.
2023-01-11 10:27:08 +01:00
Mark Spanbroek
c9cf47f327
[Storage] Move missingProofs() to Proofs
2023-01-10 12:15:22 +01:00
Mark Spanbroek
154cc00277
[Proofs] remove unused imports
2023-01-10 12:15:22 +01:00
Mark Spanbroek
d5d99515fc
[Proofs] Remove ProofId and EndId, use SlotId and RequestId
...
Rationale: in practice, a ProofId was always a slot id, and
an EndId was always a request id. Now that the definitons
of SlotId and RequestId are separated from the Marketplace,
we can import and use them.
2023-01-10 12:15:22 +01:00
Eric Mastro
bac2675bb2
set proof end when storage requested
...
1. set proof end to now + duration when storage is requested
2. set proof end to past when contract is failed
3. add back proof end mappings
2022-10-25 12:38:19 +11:00
Eric Mastro
fd74268a8a
Remove proof extension, test clean up
...
1. Remove proof extension as it is not needed. Host are required to provide proofs from the moment they fill a slot, for the duration specified by the contract. This means that the ending of their requirements will be staggered at the end, as they were at the start, but this is more predicable for determining the cost of a request.
2. The proof end time was modified so that if the request state is not accepting proofs, it takes the min of the slot proof end time, the request end time, or block.timestamp - 1, which ensures that it returns a time in the past. If the slot is accepting proofs, it returns the slot end time.
3. Modify marketplace tests so that `waitUntilFinished` advances time to the proof ending of the last slot filled.
2022-10-25 12:38:19 +11:00
Eric Mastro
321132b6fa
clean up tests
...
1. Replace all instances of `now()` with `await currentTime()` to get a more accurate representation of time from the block timestamp. Update examples.js to be async.
2. Move `RequestState` to `marketplace.js`
3. Delete `TestStorage` as `slashAmount` function no longer needed.
2022-10-25 12:38:19 +11:00
Eric Mastro
ad040cfee6
[marketplace] extend proof ending
...
Allow proof ending to be extending once a contract is started, so that all filled slots share an ending time that is equal to the contract end time. Added tests.
Add a mapping for proof id to endId so that proof expectations can be extended for all proofs that share a given endId.
Add function modifiers that require the request state to allow proofs, with accompanying tests.
General clean up of each function’s request state context, with accompanying tests.
General clean up of all tests, including state change “wait” functions and normalising the time advancement functions.
2022-10-25 12:38:19 +11:00
Eric Mastro
08e73d9348
[marketplace] Add tests for freeing a slot
2022-10-25 12:38:19 +11:00
Eric Mastro
9050a0d52d
[marketplace] address PR comments
...
- reordered some tests
- add RequestState export
- change test descriptions to start with “it”
2022-09-21 20:52:44 +10:00
Eric Mastro
9f8affdcaa
[marketplace] Add tests for freeing a slot
2022-09-21 20:52:44 +10:00
Mark Spanbroek
2bf01da728
[proofs] Submitting proof emits event containing proof
2022-04-12 09:04:29 +02:00
Mark Spanbroek
7cbb717de7
Fix tests that weren't running
2022-04-12 09:04:29 +02:00
Mark Spanbroek
29b5775951
[proofs] willProofBeRequired() predicts proof requirement
2022-04-05 11:36:31 +02:00
Mark Spanbroek
111dce58e8
[proofs] Test that pointer increases by one every block
2022-04-05 11:36:31 +02:00
Mark Spanbroek
3fd7c756d9
Fix flaky tests
...
By ensuring that there's enough blocks left
for submitting a proof.
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f8ddc4a2f6
Add getChallenge() to Storage contract
2022-03-15 10:01:12 +01:00
Mark Spanbroek
fd55afcc5a
Make pointer downtime configurable
2022-03-15 10:01:12 +01:00
Mark Spanbroek
476956c4d5
Replace pointer duos with pointer downtime design
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f4d895113f
Fix flaky test
2022-03-15 10:01:12 +01:00
Mark Spanbroek
6d726fc2cc
Require a block height of at least 256
2022-03-15 10:01:12 +01:00
Mark Spanbroek
fd06bc00b3
Move periodOf(), periodStart(), periodEnd() into time module
2022-03-15 10:01:12 +01:00
Mark Spanbroek
78eaaa7812
Replace Proof implementation with new design
...
More info: https://github.com/status-im/dagger-research/pull/66
2022-03-15 10:01:12 +01:00
Mark Spanbroek
22e8ea50e2
Add EVM snapshots including time for tests
2022-03-15 10:01:12 +01:00
Mark Spanbroek
036a214427
Proof period and proof timeout are network constants now
2022-03-15 10:01:12 +01:00
Mark Spanbroek
78755ecaa2
Format using prettier
2022-02-10 07:46:03 +01:00
Mark Spanbroek
d0a22afc3d
Extract mining test helpers to separate module
2021-11-04 10:18:09 +01:00
Mark Spanbroek
b865d0f4c9
Decrease chance of incidental test failure
2021-11-03 17:15:24 +01:00