Commit Graph

42 Commits

Author SHA1 Message Date
Derrick Hammer 2e116d3e2f
*WIP 2023-03-24 11:14:48 -04:00
Derrick Hammer 18742dcd1c
*WIP 2023-03-24 10:59:16 -04:00
Derrick Hammer 64eddcaa33
*WIP 2023-03-24 10:51:21 -04:00
Derrick Hammer 602b6dfee5
*WIP 2023-03-23 19:05:44 -04:00
Derrick Hammer 93b4d502ba
*WIP 2023-03-23 10:07:05 -04:00
Noah Citron f5760f7a8a
chore: bump version to 0.3.0 (#215) 2023-03-15 15:40:01 -04:00
Noah Citron ba3f31111f
feat: support capella (#214)
* handle forks using superstructs

* fix ssz for superstructs

* add capella types

* fix tests

* clippy

* clippy take two
2023-03-15 00:46:00 -04:00
Noah Citron 5a32f30686
feat: fee history (#211)
* client get_fee_history

* node get_fee_history

* errors: InvalidBaseGaseFee

* execution get_fee_history

* http rpc get_fee_history

* moc rpc get_fee_history and json file

* module add get_fee_history

* update exec

* test feehistory

* update execution with logging + better logic

* fee history config loader

* rust fmt client

* rustfmt node

* rustfmt error

* rustfmt execution

* rustfmt http and moc rpc

* rustfmt mod.rs

* fee history formating

* correct typos

* use env var

* InvalidGasUsedRatio error

* check gas used ratio

* remove logging

* Update execution/src/errors.rs

Co-authored-by: refcell.eth <abigger87@gmail.com>

* Update execution/src/execution.rs

Co-authored-by: refcell.eth <abigger87@gmail.com>

* adding block and payload errors

* using error

* handle error in test

* fix: evm panic on slot not found (#208)

* fixes, but test fails

* fix: cleanup and example (#210)

* clean up fee history

* bump time dep in chrono, thx dependabot

* add benches to pr

* sleep

* fmt 

* place benching behind a man flag

---------

Co-authored-by: SFYLL <santiagoflood@hotmail.fr>
Co-authored-by: SFYLL <39958632+SFYLL@users.noreply.github.com>
Co-authored-by: refcell.eth <abigger87@gmail.com>
2023-03-11 01:59:29 -05:00
christn 1b1a540340
feat: backfill payloads (#189)
* Loop over all missing slots since last update

* Adjust get_block_header function to allow getting headers of past blocks

* Compare parent hashes when backfilling blocks

* Backfill blocks concurrently

* Do not rehash backfilled blocks

* Revert "Adjust get_block_header function to allow getting headers of past blocks"

This reverts commit 5895118046.

* Move get_payloads to consensus module

* Continue with the next block instead of request failure to recover from skipped blocks

* clippy and rustfmt

* clippy

* Remove redundant get_block_from_rpc method
2023-02-07 17:36:29 -05:00
Noah Citron 72267b4563
feat: wasm support (#182)
* basic consensus setup

* basic execution setup

* patch for wasm

* basic wasm client

* proxy cors for testing

* migrate to webpack

* use typescript

* track chain head

* rename to helios-ts

* better build instructions

* add getCode

* builds everywhere

* add wasm-pack to dependencies

* compile for both wasm and non-wasm

* fix deps

* fix deps

* remove ds store

* add blocktags

* add getNonce

* use BTreeMap to store payloads

* add getTransaction

* switch to proper ethers provider

* post merge fixes

* compile client to wasm

* fix tests

* fmt

* use milagro for bls

* handle node advance in rust

* faster bls deserialization

* clippy

* add ConfigDB

* remove ts bindings

* fix gitignore

* remove ts workspace member

* remove unused mut

* uncomment old deletions

* bump to 0.2.0
2023-01-30 21:38:46 -05:00
Noah Citron 2c5c318529
feat: check consensus rpc network (#177)
* feat: check consensus rpc network

* cleanup
2023-01-23 10:07:11 -05:00
Noah Citron 10e39eb35a
chore: bump version to 0.1.3 (#173) 2023-01-19 19:23:06 -05:00
Noah Citron cb6cf75d59
feat: make checkpoint age check optional (#170)
* feat: make checkpoint age check optional

* add new flag to readme

* fix tests
2023-01-18 21:18:26 -05:00
Noah Citron 69b8108dae
fix: deserialize wrapped lc headers correctly (#169)
* fix: deserialize wrapped lc headers correctly

* clippy
2023-01-18 19:42:56 -05:00
refcell.eth b449c1f674
fix(readme): Resolve Dependency Type Conflicts (#129)
* 🐛 resolve dependency type conflicts

* 🔨 fix inline payload construction in tests
2022-12-04 15:28:44 -05:00
andreas 161e0fbfb9
feat: checkpoint fallbacks (#120)
* 🏗️ checkpoint fallback initial impl

* 🚧 checkpoint fallbacks

*  checkpoint fallbacks

* ⚙️ fix result types

* ♻️ checkpoints refactoring

* 🔨 import nits

* 🚀 graceful checkpoint fallbacks

*  parallel checkpoint fallback service fetching using async tokio tasks

* 📝 readme touchups
2022-12-01 20:18:23 -05:00
asnared 21c73c1649
feat: Lints, Clippy, and Cleaning (#115)
*  cargo fmt smells

* ♻️ cargo cleaning
2022-11-29 17:31:25 -08:00
0xModene eaf5605d4d
feat: verify checkpoint has valid age (#105)
* check blockhash has valid timestamp

* remove warn log

* made checkpoint age req configurable

* renamed method to make more sense

* fixed broken tests

* formatting

* unit tests completed

* removed needless imports

* renaming vars
2022-11-14 15:23:51 -05:00
dadepo 2dbe057e3a
refactor: add count parameter to get_update and use 128 as the limit (#97)
* Make get_update take count. Limit count to 128 as specified in the spec

* use u8 instead of u32

* run cargo fmt to fix formating

* fix compilation in tests

* moved constants module into the consensus package
2022-11-08 16:24:55 -05:00
Noah Citron eaca764aac
feat: add retries to consensus rpc (#87)
* feat: add retries to consensus rpc

* fix tests
2022-11-04 11:05:18 -04:00
Noah Citron f605f009a7
feat: add client builder (#84)
* add client builder

* use client builder in cli

* make build sync

* fix data dir override

* fix tests
2022-11-03 15:24:17 -04:00
Noah Citron 7841eb90e0
chore: pin git dependencies (#82) 2022-11-02 21:48:18 -04:00
Noah Citron 43a519d129
fix: use openssl (#81) 2022-11-02 20:32:22 -04:00
Noah Citron 8f375d8c44
fix retries (#80) 2022-11-02 15:26:15 -04:00
Noah Citron a9b34f3dee
refactor: clean up (#78)
* refactor client rpc

* refactor node

* remove unused deps

* remove unused import

* refactor consensus

* consensus refactor

* rename rpc traits

* refactor execution
2022-11-01 23:52:28 -04:00
Noah Citron e801b0b926
fix: better bootstrap error message (#71) 2022-10-25 19:10:49 -04:00
Noah Citron 4757fa06ff
fix: use updated consensus layer light client api (#68)
* update consensus api

* update mainnet checkpoint
2022-10-13 13:59:37 -04:00
Noah Citron 8844f921e8
feat: improved configs (#64)
* migrate config to figment

* support env variables

* add better error messages

* fix tests

* refactor
2022-10-05 13:52:07 -04:00
Noah Citron 5d1f4a6344
refactor: better error handling (#63)
* add custom errors to consensus

* add BlockNotFoundError

* better handling of blocktag parsing

* clean up

* add execution errors

* add rpc errors

* add more fields to errors
2022-09-29 19:35:43 -04:00
Noah Citron f3b9750eff
fix: prevent stale reads (#62) 2022-09-28 17:50:39 -04:00
Noah Citron aa71f4ac17
refactor: core consensus (#61)
* try to update next sync committee periodically

* perform verification through generic updates

* apply updates with generic update struct

* better logging

* fix checkpoint save

* clean up

* better update timing
2022-09-28 16:48:24 -04:00
Noah Citron 0579855141
feat: add checkpoint caching (#41)
* add checkpoint caching

* add data dir override to cli

* move checkpointing into database

* move logging to client

* clean up
2022-09-16 15:32:15 -04:00
Noah Citron 7bb9800447
feat: ci releases (#36)
* add simple release ci for mac arm

* install arm target

* run mac build on macos-latest

* archive file

* fix file paths

* use tag names

* add amd darwin build

* fix typo

* add linux arm build

* add linux amd build

* fix linux arm

* install libssl for linux arm

* set linker

* install pkg-config

* fix openssl

* use cross

* fix cross

* fix cross

* .

* .

* add deps

* .

* .

* use vendored openssl

* remove cross

* deps

* push to tags

* use commit as tag name

* tag with correct name and use pre release

* fix tag names

* only maual dispatch
2022-09-15 04:55:29 -04:00
Noah Citron d41a8713d0
fix: add missing fields to beacon block body (#31)
* add proposer slashings to block body

* add attestation slashings to beacon block

* add voluntary exits to beacon body

* remove comment

* fix u256_deserialize
2022-09-14 17:21:09 -04:00
Noah Citron 56385f15ed
feat: support finalized block tag (#28) 2022-09-12 19:23:37 -04:00
Noah Citron a149ba618c
feat: add logging (#15)
* feat: add logging

* show confidence and delay when syncing

* log rpc errors

* fmt
2022-09-08 21:34:14 -04:00
Noah Citron c64ba5839b
chore: add ci (#12)
* Create rust.yml

* fmt
2022-09-04 21:14:20 -04:00
Noah Citron a0b0b78da5
test: add consensus tests (#11)
* add consensus integration tests

* add unit tests

* organize imports
2022-09-04 19:32:16 -04:00
Noah Citron 92e30c3d50
feat: add metamask support (#2)
* add eth_getBlockByNumber and net_version

* fmt
2022-08-31 17:40:44 -04:00
Noah Citron 374dd1f38f
add optimistic updates (#1) 2022-08-30 20:31:58 -04:00
Noah Citron ad43cf7668 add cli app 2022-08-29 16:54:58 -04:00
Noah Citron 1d810caa92 refactor using cargo workspaces 2022-08-29 13:31:17 -04:00