0ff0ffa7d5
feat(primitives): transaction encoding tests ( #103 )
...
* feat(primitives): transaction encoding tests
* fix encoding and decoding
* remove printlns
* remove obsolete comment
* rename y_parity local variable
* add explicit non-legacy case for signature length
2022-10-19 19:52:26 -04:00
fe84bfb68c
ci: coverage ( #106 )
...
* ci: update action versions
* ci: add coverage job
* ci: require `CODECOV_TOKEN` secret
* ci: collect coverage for entire workspace
* ci: typo
* ci: dedup
* ci: add concurrency control
2022-10-19 14:46:47 -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
630baf5d70
feat(db): fuzzing & benchmark ( #86 )
...
* fuzz with test-fuzz
* move fuzzing to db/codecs
* add criterion & iai
* print encoded size sum on criterion benchmark
* fix BlockNumHash encode
* add gh action for benchmarks
* don't sum results
* test ci values
* Revert "test ci values"
This reverts commit cc47fd80538b2c0073592f824c2693c927021f8f.
* specify criterion version
* add docs
* remove benchmark job
2022-10-19 13:08:07 -07:00
7e26ba5090
feat(primitives): transaction encoding and decoding ( #102 )
...
* feat(core): transaction encoding and decoding
* cargo fmt
* remove printlns
* fix tx conversion
2022-10-19 13:31:41 -04:00
f672781bfc
feat(api): add StorageProvider trait ( #97 )
2022-10-19 10:56:54 +02:00
1e7d3ae57e
feat(txpool): keep track of pool size ( #95 )
...
* feat(txpool): add PoolStatus Api
* feat(txpool): track sizes
* feat(txpool): add size tracking
* cleanup
2022-10-18 23:47:20 +02:00
0fc446c5a2
feat(primitives): signature length and encoding ( #93 )
...
* feat(primitives): signature length and encoding
* add signature encoding and length methods for non-eip155 and eip-155
* remove TODO
2022-10-18 13:07:59 -07: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
2009b764c0
feat(txpool): add PoolStatus Api ( #91 )
2022-10-18 12:56:53 -07:00
522a4e689e
refactor(txpool): simplify is local ( #87 )
2022-10-17 11:43:27 -07:00
6bc09809f3
feat(txpool): enforce account tx capacity ( #88 )
2022-10-17 11:42:51 -07:00
9056b8cbf2
feat(primitives): header encoding & hash ( #89 )
...
* header encoding & hash
* remove newline
* consistent extra_data conversion
* clean up decoding test
2022-10-17 10:37:15 -07:00
edd0e852f2
feat(txpool): introduce transaction origin ( #85 )
2022-10-17 07:14:18 -07:00
83a9b31911
feat(txpool): add no parked ancestors condition ( #84 )
...
* feat(txpool): add no parked ancestors condition
* chore: rustfmt
2022-10-17 07:13:40 -07:00
2e19f94048
feat: impl rlp for receipt ( #83 )
...
* feat: impl rlp for receipt
* fix: change to bloom
* chore: rustfmt
2022-10-17 07:13:02 -07:00
063b444792
feat(db): codec encoding/decoding ( #51 )
...
* wip
* add table macro
* add simple put get test with Address
* add Env.view and Env.update
* docs
* slightly change the test
* add initial table initialization and placeholders
* lint & some
* replace String with str
* add error.rs
* add docs to encode
* add docs
* clamp
* add source on libmdbx_max_page_size
* add BlockNumer_BlockHash
* add scale
* set header filed to bytes Bytes
* remove unwrap
* restrict scale to chosen types
* into bytes
* add postcard
* changed to BlockNumHash
* add proc_macro_attribute codecs
* fix feature flagging
* set a version for postcard
* cleanup
* seal ScaleOnly
* remove unnecessary dependencies
* properly encode/decode blocknumhash
* change Account codec to scale
* add missing feature to scale
* add codec to a couple more types
* silence clippy
* add docs about table encoding
* move and add reth-codecs
* clippy
* make proc-macro visible
* add README.md
2022-10-17 01:04:57 -07:00
8009d997c0
Implement ETH P2P ( #81 )
...
* refactor: move things to types
* feat(ethwire): bring in message type from ethp2p
30c11138d5/src/message.rs
* feat(ethwire): add eth-stream with Stream/Sink impls
* feat(ethwire): make Sink error an EthStreamError
* feat(ecies): expose util module
* add more deps
* feat: add broadcast newblockhashes
* fix: rlp serialize with message-id first
* chore: cleanup doc
* wip: test eth connection
* bump cargo lock
* feat: add rlp codec and get stream tests working
* fix: convert RlpCodec to PassthroughCodec
we were rlp encoding twice
* Revert "fix: convert RlpCodec to PassthroughCodec"
This reverts commit 6e6e0a58112c14d7ffba62dc83f9747ddc280641.
This does not handle framing, which would fail decoding if a partial
write happened to the socket.
* add tracing
* refactor: add handshake error
* feat(ethwire): add status handshake
* test(ethwire): handshake works
* refactor: expose EthStream::new
* chore: clippy lints
* fix: get rid of rlp codec
we can instead use LengthLimitedCodec from Tokio IO, which we re-export
as PassthroughCodec
* fix(eth): add handshake + msg error checks
1. 10MB message lengths
2. Same Genesis, Version, Chain on Status Handshake
* chore: ignore result_large_err
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de >
2022-10-16 20:10:25 -07:00
5dfe5ac29b
feat(net): add Framed ECIES implementation ( #80 )
...
* feat(net): add ecies crate
* cargo fmt
* add hex-literal and proptest to dev-dependencies
* adds std feature to reth-rlp
* document util
* document more
* chore: allow missing docs in ecies/algorith.rs
* feat(ecies): improve error handling
remove anyhow and strictly type all errors
* refactor(ecies): movem ingress/egress to lib.rs
* chore(ecies): allow missing docs in mac
* chore(ecies): cleanup utils
* refactor(ecies): move ECIES Codec to separate file
* refactor(ecies): rename proto to stream
* add test scaffold
* implement server/client read/write test
* chore: clippy / fmt
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com >
2022-10-15 18:20:17 -07:00
07a83b163f
feat(primitives): add H128 ( #79 )
...
* feat(primitives): add H128
* uses patch for now
* cargo fmt
2022-10-14 20:06:26 -07:00
bdc38d8bbd
cleanup remove forkid from primitives ( #78 )
2022-10-14 23:01:55 +02:00
2317bcb702
style(txpool): turn InsertResult into std::result::Result ( #73 )
...
* refactor(txpool): consider below proto fee cap an error
* style(txpool): turn InsertResult into std::result::Result
* chore: rustfmt
* docs: add missing docs
2022-10-14 12:03:00 -07:00
533c3ebe98
feat(rpc): add EthApiServer impl skeleton ( #75 )
2022-10-14 12:01:00 -07:00
a7cf915677
refactor(txpool): consider below proto fee cap an error ( #71 )
2022-10-14 17:10:05 +02:00
a644318c32
feat(p2p): Include forkid file from apache licenced repo ( #68 )
...
* Start using reth-rlp
* Include apache licenced forkid file in primitives
* Move forkid to eth-wire
2022-10-14 16:52:59 +02:00
19d001fbdd
chore(txpool): require public traits to be static ( #74 )
2022-10-14 16:05:46 +02:00
4790256507
feat: skip/error pipeline events ( #70 )
2022-10-14 14:08:41 +02:00
0d97014f4c
docs: mermaid diagram for pipeline ( #67 )
2022-10-14 13:23:13 +02:00
92e64ed71f
include apache licenced fastrlp as reth-rlp ( #63 )
...
* include apache licenced fastrlp as reth-rlp
* fmt
* Include LICENCE and README for reth-rlp
2022-10-14 12:43:21 +02:00
6d0bd9037e
feat(txpool): add get_all function ( #65 )
2022-10-14 11:19:15 +02:00
794c07391e
feat(txpool): extend poolconfig ( #61 )
2022-10-13 20:49:35 +02:00
6b71460e7e
refactor(txpool): simplify validator trait ( #60 )
...
* refactor(txpool): simplify validator trait
* fix docs
2022-10-13 20:36:15 +02:00
55768a534d
feat(txpool): add listeners for all transactions ( #59 )
2022-10-13 10:47:32 -07:00
84ec30db5b
feat(txpool): add support for mock testing ( #55 )
...
* chore: some cleanup
* refactor(txpool): simplify layers and add docs
* refactor: more cleanup
* refactor: cleanup and simplifications
* feat(txpool): mock test support
* feat(txpool): more mock testing
* chore: rustfmt
* set basefee correctly
2022-10-13 10:44:31 -07:00
577e840062
docs(txpool): update BestTransaction docs ( #57 )
2022-10-13 10:44:18 -07:00
74b04dc81a
refactor(txpool): get rid of block number requirement ( #56 )
2022-10-12 16:24:19 -07:00
6d4e39deef
refactor(txpool): cleanup pass ( #53 )
...
* chore: some cleanup
* refactor(txpool): simplify layers and add docs
* refactor: more cleanup
* refactor: cleanup and simplifications
2022-10-12 18:23:08 +02:00
4fb99848fd
refactor(txpool): simplify layers and add docs ( #52 )
...
* chore: some cleanup
* refactor(txpool): simplify layers and add docs
2022-10-12 17:58:36 +02:00
ae5935e6b2
feat: reth binary and parsing of eth chain tests ( #38 )
...
* Scaffolding for reth test binary. wip for blockchain tests
* wip models for chain json tests
* reth binary and chain test
* fmt,clippy
* Update bin/reth/src/lib.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/lib.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/mod.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/mod.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/mod.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/models.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/models.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/mod.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Update bin/reth/src/test_eth_chain/runner.rs
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
* Move JsonU256 to primitives
* fmt
* Use eyre
* nits
Co-authored-by: Bjerg <onbjerg@users.noreply.github.com >
2022-10-12 17:43:01 +02:00
08d8a7f030
cursor put ( #54 )
2022-10-12 17:16:59 +02:00
111c13f12f
test: more staged sync tests ( #49 )
2022-10-11 23:04:07 +02:00
bbb46216ea
chore: test utils ( #48 )
2022-10-11 20:09:18 +02:00
5ebfc01338
chore: migrate stages to new db abstractions ( #43 )
...
* migrate
* set block as u64
* linter
* BNum -> BlockNumber
* stage id alias
2022-10-11 19:54:05 +02:00
098bfe84b9
docs: add contributor docs ( #41 )
...
* docs: add contributor docs
* docs: nit
* docs: move project layout to docs folder
* chore: slash the slashes
* docs: re-add ci badge (whoops)
* docs: index
2022-10-11 10:15:08 -07:00
180c768822
docs(txpool): add note for minimal protocol base fee ( #47 )
2022-10-11 10:14:32 -07:00
0b1c86df30
docs(txpool): add mermaid diagram ( #46 )
2022-10-11 19:07:16 +02:00
edc75881c1
docs: add book skeleton ( #44 )
...
* docs: add book skeleton
* ci: add book test workflow
2022-10-11 18:52:28 +02:00
a8c1eaf140
feat: simplified unwind priority ( #45 )
2022-10-11 18:52:05 +02:00
3fed7cfe21
feat(txpool): new txpool design ( #22 )
2022-10-11 17:10:02 +02:00
8eb2ea4152
feat(rpc): add rpc-api client feature ( #33 )
...
* feat(rpc): add rpc-api client feature
* refactor: combine proc macro
* feat: add missing deserialize functions
* add missing derive
2022-10-11 11:56:12 +02:00