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
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
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
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
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
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