Svyatoslav Nikolsky
00bd13f8cd
Exchange pallet benchmarks ( #158 )
...
* exchange benchmarks: framework
* updated comment about tx size
Co-authored-by: Tomasz Drwięga <tomasz@parity.io >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a7208c05e0
Relay PoA lock-funds transactions proofs ( #177 )
...
* relay exchange transaction(s)
* fixed Ethereum::get_block_by_hash
* added exchange trace
* fixed method name
* update for new web3
* svyatonik/rust-web3 -> tomusdrw/rust-web3
* if let Some() -> .expect()
* extracted loops in separate functions
* use yaml references (TIL)
* get eth header with transactions
* cargo fmt --all
* Update primitives/ethereum-poa/src/lib.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/ethereum_exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/rpc_errors.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* removed comment
* Update relays/ethereum/src/ethereum_exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/ethereum_exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* module-level comments
* updated readme
* use web3 from crates.io
* added missing fields info in error description
* cargo fmt --all
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Hernando Castano
002e18a47c
Benchmark Ethereum Pallet ( #149 )
...
* Add skeleton for worst case import_unsigned_header
* Fix a typo
* Add benchmark test for best case unsigned header import
* Add finality verification to worst case bench
* Move `insert_header()` from mock to test_utils
Allows the benchmarking code to use this without having to pull it in from the mock.
* Add a rough bench to test a finalizing a "long" chain
* Try to use complexity parameter for finality bench
* Improve long finality bench
* Remove stray dot file
* Remove old "worst" case bench
* Scribble some ideas down for pruning bench
* Prune headers during benchmarking
* Clean up some comments
* Make finality bench work for entire range of complexity parameter
* Place initialization code into a function
* Add bench for block finalization with caching
* First attempt at bench with receipts
* Try and trigger validator set change
* Perform a validator set change during benchmarking
* Move `validators_change_receipt()` to shared location
Allows unit tests and benchmarks to access the same helper function
and const
* Extract a test receipt root into a constant
* Clean up description of pruning bench
* Fix cache and pruning tests
* Remove unecessary `build_custom_header` usage
* Get rid of warnings
* Remove code duplication comment
I don't think its entirely worth it to split out so few lines of code.
The benches aren't particularly hard to read anyways.
* Increase the range of the complexity parameter
* Use dynamic number of receipts while benchmarking
As part of this change we have removed the hardcoded TEST_RECEIPT_ROOT
and instead chose to calculate the receipt root on the fly. This will
make tests and benches less fragile.
* Prune a dynamic number of headers
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
e39ca0dc16
Runtime benchmarks: start ( #136 )
...
* runtime benchmarks: start
* merge tests + benchmarks infrastructure
* fix compilation
* Fix compilation issues with runtime-benchmark feature flag
Mainly involved pulling in correct dependencies and adding some functions
which were called but didn't yet exist.
* Fix broken compilation for tests
* Move header signing methods into trait
* Move signing related test helpers to own module
* Remove comment about feature flag
* Add constants to tests
* Add top level comment for testing utilities
Co-authored-by: Hernando Castano <castano.ha@gmail.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
f5a00140cb
Forbid appending blocks to forks that are competing with finalized chain ( #138 )
...
* Error::TryingToFinalizeSibling
* cargo fmt --all
* updated PruningStrategy comment
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a0c8206684
Move pruning strategy to runtime level ( #128 )
...
* move pruning strategy to runtim level
* cargo fmt --all
* Update modules/ethereum/src/lib.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* finalize_headers -> finalize_and_prune_headers
* PruningStrategy::default()
* fn import_of_non_best_block_may_finalize_blocks()
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
643075f7fa
Finality votes cache ( #116 )
...
* removeInMemoryStorage + extract Kovan stuff to runtime
* removed comment from the future
* remove redundant conversions
* remove redundant `u8 as usize`
* remove redundant `u8 as usize`
* Update modules/ethereum/src/mock.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* use hex-literal in kovan config
* cargo fmt --all
* extracted insert_header
* cargo fmt --all
* finality cache
* cargo fmt --all
* cargo fmt --all
* impl Default for FinalityVotes
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Hernando Castano <castano.ha@gmail.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
7294ea44e1
Claim funds on Substrate chain by providing proof of funds locking on PoA chain ( #91 )
...
* ethereum exchange module
* continue
* continue
* added tests for exchange module
* moved
* remove println
* move again
* fixes
* removed redundant deps
* cargo fmt
* fund_locks_transaction_decode_works
* cargo fmt --all
* fix error processing
* added some tracing to bridge modules
* more tests
* more tests
* cargo fmt --all
* kovan.rs -> exchange.rs
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* added assumption doc
* Airdrop -> DepositInto
* AsIs -> Identity
* OnTransactionSubmitted
* Transfers::Key = Id
* typo
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* block+tx+proof -> proof { block, tx, proof }
* cargo fmt --all
* docs
* check <-> verify
* parse hex
* extracted exchange primitives to separate crate
* added docs to runtime::exchange module
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* typo
* Update modules/currency-exchange/Cargo.toml
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* add docs to currency-exchange module
* change tests names
* cargo fmt --all
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* fixed verify_transaction_finalized for siblings of finalized blocks
* cargo fmt --all
* added double spend note
* cargo fmt --all
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a7e7c895f6
Bump substrate version ( #120 )
...
* bump substrate
* cargo fmt --all
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
944859319e
Limit number of headers that are pruned within single import Call ( #105 )
...
* removeInMemoryStorage + extract Kovan stuff to runtime
* removed comment from the future
* limit number of headers that are pruned within single import Call
* verify that pruning range upper bottom is always-increasing
* Fix typo
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a6a86c21bb
Use runtime storage in PoA -> Substrate module tests ( #103 )
...
* removeInMemoryStorage + extract Kovan stuff to runtime
* removed comment from the future
* remove redundant conversions
* remove redundant `u8 as usize`
* remove redundant `u8 as usize`
* Update modules/ethereum/src/mock.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* use hex-literal in kovan config
* cargo fmt --all
* extracted insert_header
* cargo fmt --all
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
50d6ed186f
Migrate to new substrate ( #79 )
...
* new substrate version + actually verify justification
* cargo update + fix remaining stuff
* add weight=0 comments
* cargo fmt --all
* fix hash types
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c6c46462ab
Sync ethereum headers using unsigned (substrate) transactions ( #45 )
...
* reward submitters on finalization
* PoA -> Substrate: unsigned_import_header API
* fix grumble
* make submitter part of ImportContext
* verify using next validators set + tests
* fix nostd compilation
* add sub-tx-mode argument
* support sub-tx-mode
* impl ValidateUnsigned for Runtime
* do not submit too much transactions to the pool
* cargo fmt
* fix bad merge
* revert license fix
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* Update modules/ethereum/src/verification.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* updated comment
* validate receipts before accepting unsigned tx to pool
* cargo fmt
* fix comment
* fix grumbles
* Update modules/ethereum/src/verification.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* cargo fmt --all
* struct ChangeToEnact
* updated doc
* fix doc
* add docs to the code method
* simplify fn ancestry
* finish incomplete docs
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* return err from unsigned_import_header
* get header once
* Update relays/ethereum/src/ethereum_sync.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* fix
* UnsignedTooFarInTheFuture -> Custom(err.code())
* updated ImportContext::last_signal_block
* cargo fmt --all
* rename runtime calls
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
ddff294795
remove duplicate licenses ( #47 )
2024-04-10 10:28:37 +02:00
Hernando Castano
e5f998d7d9
Run RustFmt as part of the CI ( #37 )
...
* Run RustFmt as part of the CI
* Format repo
* Run RustFmt before the default Travis build step
Apparently if you override `script` you also need to make
sure to `build` and `test` the code yourself.
* Format repo
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
d904a282c8
Reward submitters only when submitted block is finalized ( #34 )
...
* reward submitters on finalization
* fix grumble
* make submitter part of ImportContext
2024-04-10 10:28:37 +02:00
Tomasz Drwięga
91b6248f96
Add license headers ( #27 )
...
* Add the scripts.
* Add license preamble.
* Change existing license headers.
2024-04-10 10:28:37 +02:00
Tomasz Drwięga
7ef276daba
Add lock file, fix latest substrate. ( #3 )
2024-04-10 10:28:37 +02:00
Hernando Castano
987888e163
RustFmt the repo (sorry not sorry)
2024-04-10 10:28:37 +02:00
Hernando Castano
fbaa803034
Squashed commit of Rust-ifying the repo:
...
commit e31c1965a2e6b9a21ce68be63b81915b2b090f1d
Author: Hernando Castano <castano.ha@gmail.com >
Date: Sun Feb 2 21:15:42 2020 -0500
Get Ethereum bridge module compiling
commit a497fc1640e68682f61b39414ffb15206c6120e2
Author: Hernando Castano <castano.ha@gmail.com >
Date: Thu Jan 30 12:15:43 2020 -0500
Make the toml file look a bit better
commit 898fb7b06cfac7cf866e1a28fed9a4f02bd246a7
Author: Hernando Castano <castano.ha@gmail.com >
Date: Thu Jan 30 12:06:27 2020 -0500
Get substrate bridge module compiling
commit 81e1547e6bec9f590cad9ffba0ee5dfa82cda1c1
Author: Hernando Castano <castano.ha@gmail.com >
Date: Thu Jan 30 11:40:29 2020 -0500
Create workspace and move more files around
2024-04-10 10:28:37 +02:00