Eric Mastro
fcd5da0e67
WIP: add further curve checks, compiler optimiser
...
- Add require checks for curve parameters and relevant tests.
- Add compiler optimisation to prevent Storage.sol from being too large to deploy.
2022-06-08 15:17:35 +10:00
Eric Mastro
f684b9a1c0
WiP: more test cases added for BN254
...
Just need real proof test cases to be included.
2022-06-08 15:16:58 +10:00
Eric Mastro
c0be4e9b1d
WIP: reorg curves, use witnet as base
...
Now that curve ops are transactions, need to change up tests so that we can verify the result somehow? https://docs.ethers.io/v5/api/contract/contract/#Contract--write
2022-06-08 15:16:08 +10:00
Eric Mastro
32ff556691
WIP: Add test for verifier
...
Needs valid values to test points that exist on the curve as well as a valid proof. Waiting on https://github.com/status-im/nim-codex/pull/101 to get valid values.
TODO: Convert Bn254.sol contract to a generic witnet EllipticCurve.sol contract and fill in values as needed for the Bn254 curve.
2022-06-08 15:15:05 +10:00
Eric Mastro
976ae66cab
WIP: reorg to allow for more curves
...
Current tests are failing because ECMUL is not a valid opcode in hardhat. Exploring alternatives.
2022-06-08 15:15:05 +10:00
Eric Mastro
98c2555036
chore: clean up
...
- Move bulk of verification to curves/Bn254Proofs.sol
- remove all unneeded structs and add Proof struct
- bring in point `isOnCurve` check so that we can use solidity compiler 0.8.x
- remove all other Bn254 library deps
- changed proof type from bool to Proof
- add Bn254 test file (uncalled yet)
TODO:
- update Proofs test such that verifyProof test is called (need to generate proof using https://github.com/status-im/nim-codex/pull/76 )
- call Bn254 tests from test harness
2022-06-08 15:06:53 +10:00
Eric Mastro
b03a415fb9
WIP: cleanup
2022-06-08 15:04:59 +10:00
Eric Mastro
cbe4024c6f
WIP: Change to passing PublicKey.key in sig verification
2022-06-08 15:04:59 +10:00
Eric Mastro
36c84f58b6
WIP: Swap over to AltBn254 solidity lib
...
Still need to figure out how to stringify TauZero and verify the signature.
2022-06-08 15:04:59 +10:00
Eric Mastro
1d4f9729b0
WIP: Got further without pairings
...
Likely use a diff lib to have a better solidity api
2022-06-08 15:04:59 +10:00
Eric Mastro
aa9d976dd4
WIP: more work but still not finished
2022-06-08 15:04:59 +10:00
Eric Mastro
c0969815a1
WIP: type conversions, start moving verifyProof
...
- Add type conversions from BLS12-381 to BN254
- start moving verifyProof over to BN254 in solidity
2022-06-08 15:04:58 +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
6aa2894521
[marketplace] Use dynamically sized arrays for PoR
...
ABI encoding sometimes fails on large byte arrays of fixed size.
2022-04-11 12:10:57 +02:00
Mark Spanbroek
b145e66a68
[storage] add getRequest() and getOffer()
2022-04-11 12:10:57 +02:00
Mark Spanbroek
169a446769
Enable solidity optimizer
...
Contract size was becoming too large without optimization.
2022-04-11 12:10:57 +02:00
Mark Spanbroek
b8ce6c3682
[marketplace] Add erasure coding and PoR attributes to request
2022-04-11 12:10:57 +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
81c7dcd25a
Disallow finishing of contract that wasn't started
2022-03-22 12:41:13 +01:00
Mark Spanbroek
c606b455d6
Disallow starting an offer that was not selected
2022-03-22 12:41:13 +01:00
Mark Spanbroek
0587c2d585
Fix filename in Windows
2022-03-22 10:53:13 +01:00
Mark Spanbroek
2a745d7abe
Fix flaky test
...
Ensure that when we check whether a proof is required,
the pointer isn't about to wrap.
2022-03-15 17:01:04 +01:00
Mark Spanbroek
438fb605c0
Ensure local ethereum node has at least 256 blocks
...
Storage contract cannot be deployed when block height
is less than 256 blocks.
2022-03-15 17:01:04 +01:00
Mark Spanbroek
29698fee71
Fix tests after OpenZeppelin update
2022-03-15 17:01:04 +01:00
Mark Spanbroek
c79059e470
npm update
2022-03-15 17:01:04 +01:00
Mark Spanbroek
743d1cdb07
Update Readme now that storage requests and offers are on-chain
2022-03-15 10:17:55 +01: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
241fcf10a5
Unlock host collateral at end of contract
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f4d895113f
Fix flaky test
2022-03-15 10:01:12 +01:00
Mark Spanbroek
bb14732ddc
Remove mine*() testing functions
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
07d0e33789
Disable solhint about relying on timestamp
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
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
c181195487
Temporarily disable test
2022-03-15 10:01:12 +01:00
Mark Spanbroek
e818d70b85
Remove Contracts in favor of Marketplace
2022-03-15 10:01:12 +01:00
Mark Spanbroek
7e7134b99d
Allow events to be filtered by request id
2022-03-15 10:01:12 +01:00
Mark Spanbroek
c835ac1cc4
Emit event when offer is selected
2022-03-15 10:01:12 +01:00
Mark Spanbroek
05fbd244e2
Formatting
2022-03-15 10:01:12 +01:00
Mark Spanbroek
6e6cc1a230
Reject offer for expired request
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
cc57155792
Lock collateral of host that offers storage
2022-03-15 10:01:12 +01:00