Technical Update 15
Published in
4 min readOct 14, 2019
By Michael Kong
Go-lachesis
- Implemented part of eth backend api for clef testing purposes: PR#323
- Applied fix to genesis: PR#324
- Improvement to “seeing” strategy: PR#325
- Network demo setup: PR#326
- Refactoring and bugfixes: PR#327, PR#329
- Updated document Gas power improvement calculations
- Improvement to Gas power calculations: PR#328
- Integration Testing: PR#330
- Additional rules for onFrameDecided (protection against huge blocks). Forbid linking to a node if self-parent has observed a fork from it: PR#331
- Prevent the inclusion of the same transaction from different validators: PR#332
- Added DB fault tolerance: PR#333
- Gossip optimisation: PR#334
- Fixed emitter deadlock: PR#335
- Created API calls for Event debugging: PR#336
- Gossip tmpDB fix: PR#337
- Created API calls for sending transactions: PR#338
- Created Toml configuration: PR#339
- Updated README.md on how to build and run Lachesis: PR#340
- Created API calls for getting txs and blocks by hash: PR#341
- Added Docker swam simulation scripts: PR#342
- Created protection against Self-forks: PR#343
- Added DB fault tolerance for Gossip: PR#344
- Refactored emitter and gossip implementations, added comments: PR#345
- Started work on contract logs searching
Rust
- Upgraded dependencies
- [Cargo.toml] Upgraded dependencies; removed lachesis; [fvm] Remove parity keccak replace with tiny-keccak
- Implemented Instruction interface for OpCodes
- Removed idea info
- Created skeleton of the consensus implementation
- [.idea] Removed; [.gitignore] Ignored .idea
- changed how we serialize
- Migrated to new big types library
- Added consensus to VM
- Fixed build for evm-rs
- [Cargo.toml,src/{instructions,lib}.rs] Upgraded dependencies; auto format
- [Cargo.toml] Fixd “no method named `is_xid_start` found for type `char` in the current scope” from runtime-fmt; [README.md] Renamed package
- [*.rs] rustfmt; [Cargo.toml] Upgraded dependencies
- [lib.rs] Resolved error `&` without an explicit lifetime name cannot be used here; [.gitignore] Updated
- Removed dependency on transport
- Set pending values
- [.gitignore] Ignored “.idea”; [Cargo.toml] Upgraded dependencies
- Transitioned to using failure crate
- Method renaming: new()->new_from_digest(), hash()->new()
- Reflected latest changes in libhash
- Reflected changes in libhash: https://github.com/Fantom-foundation/libhash-sha3/commit/6b3469d
- [.gitignore] Removed duplicate; [Cargo.toml] Upgraded dependencies: https://github.com/Fantom-foundation/libconsensus/commit/ea226dc
- Removed necessity of libcommon::Error: https://github.com/Fantom-foundation/libconsensus/commit/22dd52a
- Merge pull request #6 from Fantom-foundation/to_failure Use failure: https://github.com/Fantom-foundation/libconsensus/commit/7b9985c
- Fixed source code formatting: https://github.com/Fantom-foundation/libconsensus/commit/a6757c7
- Added Hash trait to BaseConsensusPeer and TransactionType: https://github.com/Fantom-foundation/libconsensus/commit/79311c5
- Add Public key into BaseConsensusPeer: https://github.com/Fantom-foundation/libconsensus/commit/a174b50
- Corrections to comply with the latest version of libcommon-rs: https://github.com/Fantom-foundation/libconsensus/commit/7cc8d5d
- Merged pull request #5 from Fantom-foundation/docs Docs: https://github.com/Fantom-foundation/libconsensus/commit/0796862
- Updated Rust version for matrix: https://github.com/Fantom-foundation/libconsensus/commit/78c6830
- Edited errors and README files: https://github.com/Fantom-foundation/libconsensus/commit/9de13c8
- Edited lib.rs to have more comments and rigid explanations: https://github.com/Fantom-foundation/libconsensus/commit/0abe389
- [.gitignore] Removed duplicate; [Cargo.toml] Upgraded dependencies: https://github.com/Fantom-foundation/libtransport/commit/8fb4dfd
- Transition to using failure crate: https://github.com/Fantom-foundation/libtransport/commit/fb78ddb
- Add Default implementation for generic_test::Id: https://github.com/Fantom-foundation/libtransport/commit/8060ee2
- Add broadcast_n() method to Transport and TransportSender: https://github.com/Fantom-foundation/libtransport/commit/d48d987
- Corrected to compy with new version of libcommon-rs: https://github.com/Fantom-foundation/libtransport/commit/51e2f30
- Fixed to reflect latest version of libcommon_rs: https://github.com/Fantom-foundation/libtransport/commit/38d6448
- Merged pull request #5 from Fantom-foundation/nonerror Added Nonerror: https://github.com/Fantom-foundation/libtransport/commit/0f2a24d
- Added Nonerror: https://github.com/Fantom-foundation/libtransport/commit/a2c4908
- Implemented Display trait for Id in generic test: https://github.com/Fantom-foundation/libtransport/commit/94541c0
- Added split onto TransportSender and TransportReceiver traits: https://github.com/Fantom-foundation/libtransport/commit/805f688
- Added derived Clone trait to TransportType: https://github.com/Fantom-foundation/libtransport/commit/af2edad
- Aligned number of parameter types with libtransport crate: https://github.com/Fantom-foundation/libtransport-tcp/commit/a3f89e6
- Correction to comply with the latest version of libtransport: https://github.com/Fantom-foundation/libtransport-tcp/commit/519249d
- Added TransportReceiver and TransportSender traits; comply with new version of libtransport: https://github.com/Fantom-foundation/libtransport-tcp/commit/e7f63b5
- Merged pull request #4 from Fantom-foundation/docs Docs: https://github.com/Fantom-foundation/libtransport-tcp/commit/0899768
- Initialisation script for libsignature: https://github.com/Fantom-foundation/libsignature/commit/e9a661c
- [Cargo.toml] Upgraded dependencies; [.gitignore/.git] remove .idea; [main.rs] Subcommand refactor preparation: https://github.com/Fantom-foundation/full-cli-rs/commit/0599ff4
- Implemented Debug for Signature trait: https://github.com/Fantom-foundation/libsignature-ed25519-dalek/commit/4b7b668
- Implemened Hash trait for Signature: https://github.com/Fantom-foundation/libsignature-ed25519-dalek/commit/8b9baf4
- Added libsignature::SecretKey and libsignature::PublicKey traits: https://github.com/Fantom-foundation/libsignature-ed25519-dalek/commit/a6f4579
- Initialisation script and description of libsignature: https://github.com/Fantom-foundation/libsignature-ed25519-dalek/commit/ad3b85fies
- Transitioned to using failure crate: https://github.com/Fantom-foundation/libhash/commit/e5edd21
- Renamed Hashing to Hash; add PartialEq trait as requirement for an implementation: https://github.com/Fantom-foundation/libhash/commit/397ff3c
- Added basic documentation to the libhash crate: https://github.com/Fantom-foundation/libhash/commit/828a977
- Resolved compilation errors: https://github.com/Fantom-foundation/libconsensus-dag/commit/1ec303
- Switched to using libcommon_rs::Stub for HRTB: https://github.com/Fantom-foundation/libconsensus-dag/commit/ded3715
- Transitioned from Std::Error to failure: https://github.com/Fantom-foundation/libcommon-rs/commit/6a01fc4
- Added DataType trait: https://github.com/Fantom-foundation/libcommon-rs/commit/a6aebc0
- Added base_addr; chage net_addr into vector: https://github.com/Fantom-foundation/libcommon-rs/commit/5ef6359
- Added NoneError to Libcommon: https://github.com/Fantom-foundation/libcommon-rs/commit/db1ddde
Research
- Working on modifications to FIP-2: Proof of Stake proposal for Go-Lachesis implementation
- Implementation of Contract search algorithm that searches based on logs, rather than blocks (unlike Ethereum), which should make searching much faster, and consume less disk space
Official Links for Fantom
Official Email Address: contact@fantom.foundation
Official Website Link: https://www.fantom.foundation
Official Telegram Discussion Group (English): https://t.me/fantom_english
Official Telegram Announcements Channel: https://t.me/fantomfoundation
Official Subreddit: https://www.reddit.com/r/FantomFoundation/
Official Twitter: https://twitter.com/FantomFDN
Official Medium: https://medium.com/fantomfoundation
Official Github: https://github.com/Fantom-foundation
Official YouTube Channel: https://www.youtube.com/c/fantomfoundation