39 Commits

Author SHA1 Message Date
Eric
33010bd20c
feat(slot-reservations): Allow slots to be reserved (#177)
* feat(slot-reservations): Allow slots to be reserved

Closes #175.

Allows reservation of slots, without an implementation of the expanding window.

- Add a function called `reserveSlot(address, SlotId)`, that allows three unique addresses per slot to be reserved, that returns bool if successful.
       - Use `mapping(SlotId => EnumerableSet.AddressSet)`
       - Return false if the address could not be added to the set (if `EnumerableSet.add` returns false)
- Add `canReserveSlot(address, SlotId)`
        - Return `true` if set of reservations is less than 3 and the set doesn't already contain the address
        - Return `true` otherwise (for now, later add in logic for checking the address is inside the expanding window)
        - Call `canReserveSlot` from `reserveSlot` as a `require` or invariant
- Add `SlotReservations` configuration struct to the network-level config, with `maxReservations`
2024-10-03 11:01:21 +10:00
Eric
ed428767b3
chore: add downtimeProduct configuration parameter (#138)
* add `downtimeProduct` configuration parameter

* formatting
2024-08-14 15:50:32 +10:00
Adam Uhlíř
57e8cd5013
feat: expiry specified as duration (#99) 2024-05-06 15:13:32 +02:00
Mark Spanbroek
ec803adb3d Test verifier accepts any proof, except all 0 values 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
a186cb4045 Formatting 2024-01-25 13:16:49 +01:00
Mark Spanbroek
e6a918fed9 Submit proof as Groth16Proof struct 2024-01-25 13:08:10 +01:00
Mark Spanbroek
ae03690d51 Submit proof as field elements, not bytes 2024-01-25 13:08:10 +01:00
Mark Spanbroek
327ae14112 Formatting with prettier 2024-01-25 13:08:10 +01:00
Mark Spanbroek
efafa43910 Remove PoR parameters, add merkle root for storage proofs 2023-11-22 14:43:11 +01:00
Adam Uhlíř
2b5d079882
feat: collateral fractions (#47)
Co-authored-by: Eric Mastro <github@egonat.me>
2023-03-30 11:11:21 +02:00
Adam Uhlíř
dfdbd16d5b
feat: collateral per slot (#44) 2023-03-08 12:02:34 +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
bd284acce3 [examples] remove dead code 2023-01-23 15:10:23 +01:00
Eric Mastro
429b9034d8 Add SetMap tests 2022-12-22 10:29:06 +01: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
980647876f [marketplace] update contract state to failed
Update contract state to failed when too many slots have been freed.
2022-09-21 20:52:44 +10:00
Mark Spanbroek
9ab65ae5a6 [marketplace] Specify size per slot, instead of total size
Reasoning: it was unclear exactly how much storage a
host should have available for a slot. The division
size/slots can have a non-integer value.
2022-08-08 11:51:14 +02:00
Mark Spanbroek
1d951ef8f8 [marketplace] Rename Erasure.totalNodes -> Ask.slots 2022-08-08 11:51:14 +02:00
Mark Spanbroek
b3fededbad [marketplace] Remove nodeId from Request
No longer needed now that we have slots.
2022-08-08 11:51:14 +02:00
Mark Spanbroek
389f5299d6 [marketplace] Rename maxPrice -> reward 2022-07-20 11:12:00 +02:00
Mark Spanbroek
8d7b7aed1d [marketplace] remove offer, select and startContract
Contract is started when first proof is submitted.
2022-07-20 11:12:00 +02:00
Mark Spanbroek
b8ce6c3682 [marketplace] Add erasure coding and PoR attributes to request 2022-04-11 12:10:57 +02:00
Mark Spanbroek
476956c4d5 Replace pointer duos with pointer downtime design 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
ee4683e50c Add proof probability to Request 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
85b212c703 Select a storage offer 2022-03-15 10:01:12 +01:00
Mark Spanbroek
980e2343ed Add expiry to storage requests 2022-03-15 10:01:12 +01:00
Mark Spanbroek
ae92f63987 Add host address to offers 2022-03-15 10:01:12 +01:00
Mark Spanbroek
51e2d65596 Add client address to requests 2022-03-15 10:01:12 +01:00
Mark Spanbroek
b349b76ab7 Offer storage using Marketplace contract 2022-03-15 10:01:12 +01:00
Mark Spanbroek
e1ef2a2216 Request storage using Marketplace contract 2022-03-15 10:01:12 +01:00
Mark Spanbroek
c5fab40535 Account locking 2022-03-01 09:38:53 +01:00
Mark Spanbroek
78755ecaa2 Format using prettier 2022-02-10 07:46:03 +01:00
Mark Spanbroek
aa673ff71c Unlock host stake at end of contract 2021-11-04 10:19:23 +01:00
Mark Spanbroek
e7f3dc3dae Define contract duration in number of blocks
This makes calculation with duration in Solidity simpler
and less prone to errors.
2021-11-03 11:10:42 +01:00
Mark Spanbroek
5eb571fe1c Use 'request' and 'bid' objects in tests 2021-11-02 09:45:49 +01:00
Mark Spanbroek
a5e05018ad Move example values for tests into separate file 2021-11-02 09:04:51 +01:00