5ca2cab97f
refactor: move RequestError from network to interfaces p2p ( #197 )
2022-11-13 09:46:38 +01:00
2754315e68
chore: omner -> ommer ( #192 )
...
* chore: omner -> ommer
* chore: missmatch -> mismatch
* chore: other typos
2022-11-11 07:46:09 +01:00
fc9b6f35e7
feat(test): add TestApi type ( #183 )
2022-11-10 13:17:36 -05:00
9e35d58b05
feat(primitive): Signer recovery ( #179 )
...
* feat(consensus): Signer recovery and tx validation
* Signature hash and use seckp256k1 over k256
* use deref_more for transactions
* cleanup and fix for eip1559 hash
* fix hash calculation on decoding
2022-11-09 18:11:32 +01:00
b9700791c8
feat(db): transaction value type ( #175 )
2022-11-08 16:56:13 +01:00
7ecbe01741
feat(provider): Add StorageProvider impl, table changes ( #172 )
...
* feat(provider): Add StorageProvider impl, table changes
* unwind header numbers by walker (#174 )
* readme, fmt
* fix tests
* Update crates/interfaces/src/provider/db_provider/storage.rs
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
* Update crates/interfaces/src/provider/db_provider/storage.rs
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
2022-11-08 15:55:45 +01:00
caad026c70
refactor: rename HeaderLocked to SealedHeader ( #173 )
2022-11-07 21:06:53 +01:00
f6d3a49d28
feat(sync): stage tx index ( #149 )
...
* init
* feat(sync): tx index stage
* create test runner
* finish tests
* clippy
* cleanup & docs
* add more comments
* revert headers test refactor
* rm unused function
2022-11-04 03:28:18 -07:00
699db03187
feat(db): db error handling and Provider scaffolding ( #154 )
...
* feat(db): db error handling and Provider scaffolding
* remove one map_err
* fix after merge
2022-11-03 17:00:58 +01:00
becceb2802
fix(db): add traits Encode/Decode for keys and Compress/Uncompress for values ( #151 )
...
* add UncompressedUint
* add more UncompressedUint keys
* add docs
* split key/value to encode/decode and compress/uncompress traits
* reveert into
* clippy
* rm whitespaces
* remove TODO
* Remove scale encode/decode traits
* decompress
* clippy
Co-authored-by: rakita <dragan0rakita@gmail.com >
2022-11-03 00:02:19 -07:00
ac2f3fcd8a
feat: Consensus crate and verification functions. ( #152 )
...
* wip executor
* wip
* Cleanup added some checks and structure to executor
* adding additional block/header checks
* add basefee calculation and check
* some cleanup
* Sanity check test
* Test for sanity check
* move verification to consensus crate
* cleanup
* Better Error handling
2022-11-02 12:59:51 +01:00
ee61be9d07
chore(db): add docs and doctest to tables ( #150 )
...
* add table docs
* add doctest to AccountHistory table
* add docs to placeholder types
* change from outer to docs
* no camelcase type
2022-10-28 08:53:57 -07:00
ee99c29c8f
feat(interfaces): add ShardedKey ( #142 )
...
* add ShardedKey
* Update crates/interfaces/src/db/models/sharded_key.rs
Co-authored-by: rakita <rakita@users.noreply.github.com >
Co-authored-by: rakita <rakita@users.noreply.github.com >
2022-10-27 20:46:22 -07:00
61b8829bdf
feat(sync): headers stage ( #126 )
...
* port headers stage
* clean up, utils & tests
* more tests
* unwind cleanup & tests
* remove unused rand crate
2022-10-25 16:50:01 -07:00
ee41dfac35
feat(db): set-upChangeSet tables ( #135 )
...
* add AccountChangeSet
* add StorageChangeSet
* add tests to TxNumberAddress
* minor fixes
2022-10-25 03:47:45 -07:00
1fe0affa4b
chore(db): comment for cursor, cleanup unneeded fn ( #131 )
2022-10-25 10:34:30 +02:00
2a8189d7c9
chore(db): Add tests and fuzz target to BlockNumHash ( #130 )
...
* add tests and fuzz target for BlockNumHash
* use block 1 for test_block_num_hash
* new clippy stds
* fmt
2022-10-25 01:23:10 -07:00
3c5b235455
feat(db): Add DupSort PlainStorageState table ( #121 )
...
* add dupsort table and test
* use env.update instead
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-10-24 11:23:28 -07:00
4eca851429
feat(interface): implicit trait bound for DB cursors ( #122 )
...
* feat(interface): implicit trait bound for DB cursors
* test cursor
* walking fixed for RO
* impl for Walker for DupCursor
2022-10-24 11:20:14 -07:00
8bc8bd6820
feat: add IntegerList type Elias-Fano ( #111 )
...
* add elias
* docs: should not be empty
* change models doc
* add arbitrary feature
* add simple test
* add test-utils to primitives
* cfg arbitrary
2022-10-24 06:14:59 -07:00
15bd88e637
headers(part2) - feat: add Downloader trait and test utils ( #118 )
...
* feat(interfaces): implement header client traits
* feat: add downloader trait implementer
* feat: use explicit error type instead of ok(false)
* feat: add constructor to HeaderLocked
* test: scaffold mock consensus, downloader and headersclient helpers
* test: implement test consensus
* test: implement test headers client
* refactor: cleanup download headers
* chore: fix lint
* s/test_utils/test_helpers
* headers(part 3) feat: implement Linear downloader (#119 )
* feat: add headers downloaders crate
* feat: more scaffolding
* interfaces: generalize retryable erros
* feat: implement linear downloader
* fix linear downloader tests & add builder
* extend & reverse
* feat: linear downloader generics behind arc and reversed return order (#120 )
* put client & consensus behind arc and return headers in rev
* cleanup
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
* extract test_utils
* cargo fmt
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com >
2022-10-24 04:56:43 -07:00
a4e505132c
headers(part1) feat(interfaces): introduce implicit trait bounds ( #117 )
...
* feat(ifaces): modify DB GAT to have implicit bounds
https://sabrinajewson.org/blog/the-better-alternative-to-lifetime-gats\#the-better-gats
* test(ifaces): impl new trait for mock
* feat(ifaces): impl db container
we use that downstream to avoid consuming the db transactions
when committing a stage
* fix(test): explicitly define lifetime
* test: ensure can spawn
* test: pls review
* chore: lints/warnings
* feat(db): impl the new gats
* test(db): try to make real db work with gats like in stages
* test(db): make Stage trait take DBContainer
otherwise we cannot call db.commit()
gst
* feat(stages): impl new traits
* chore(db): cleanup tests
* chore: remove unused imports
2022-10-23 23:10:59 -07:00
8af8c89018
feat: support finalized and safe variants ( #115 )
2022-10-21 20:02:06 +02:00
483bcdf9ab
feat(db): Database Abstraction ( #101 )
...
* database tx traits
* wip build passes
* Db and tx results
* nightly and db GAT
* Impl tx, wip cursor
* Move Decode to Table Key, working cursor trait
* wip dupsort
* build all Cursor abstraction
* cleanup
* wip cleanup
* old stages
* codecs moved o interface,stages wip
* resolve db ref, it builds
* Add tx commit after execution
* fmt
* Remove sync send restriction
* Add missing rw cursor functions
* Cleanup, added missing cursor fn. rust toolchain
* fmt
* add nightly to ci
* deny dead_code, remove unwrap
* rm printfn, stages fix, bench fix
2022-10-20 08:32:13 -07:00
4298e3aa87
feat(rpc): more rpc scaffolding ( #99 )
...
* feat(rpc): more rpc scaffolding
* use Into<String>
* rm unused error
2022-10-19 22:12:53 +02:00
f672781bfc
feat(api): add StorageProvider trait ( #97 )
2022-10-19 10:56:54 +02:00
bd18188be9
feat: add block provider trait ( #90 )
...
* feat: add block provider trait
* rustmft
* rename BlockInfo to ChainInfo
2022-10-18 13:04:04 -07:00
573d343b66
chore: extend consensus with fork choice state ( #27 )
...
* consensus fork choice
* fork_choice -> fork_choice_state
2022-10-09 19:31:57 +02:00
95ed994fd1
Transaction type and some wrap over revm ( #19 )
...
* Transaction and wip db binding
* simple revm wrapper
* nits and small sig change
2022-10-07 13:56:11 +02:00
074f452275
Small skeleton for executor abstraction ( #14 )
2022-10-06 16:01:23 +02:00
bc30cbce61
Skeleton primitives and interface crate ( #13 )
...
* wip interface primitives
* wip
* Integrate it inside rpc- crates
* fmt
* move tx to mod.rs
* Add interfaces, executor to toml
* Added nits, comments fix
2022-10-06 14:48:57 +02:00