The Rust implementation of Conflux protocol.

Overview

Conflux-Rust

Conflux-rust is a Rust-based implementation of the Conflux protocol. It is fast and reliable. Please follow the Conflux Documentation to build and run Conflux.

Contribution

Thank you for considering helping out with our source code. We appreciate any contributions, even the smallest fixes. Please read the guidelines on how to submit issues and pull requests. Note that if you want to propose significant changes to the Conflux protocol, please submit a CIP.

Unit Tests and Integration Tests

Unit tests come together with the Rust code. They can be invoked via cargo test --release --all. See the Getting Started page for more information. Integration tests are Python test scripts with the _test.py suffix in the tests directory. To run these tests, first compile Conflux in release mode using cargo build --release. Then, you can run all integration tests using the script tests/test_all.py.

Resources

License

GNU General Public License v3.0

Comments
  • The node stopped pushing new mining job

    The node stopped pushing new mining job

    We are running two nodes for the mining process, both node seems working smoothly, but we just noticed that one node was not pushing new mining job last night. So I killed this node and synced it again. At the very beginning after the node catched up the chain, it could push out job with no problem, but after sometime (within 1 hour I guess), no more job pushed from this node. The output of the node still seems 'OK', getting new block from main chain, just no mining job notifing the miner at all. The node version is 1.0.2. Both our two nodes are using the exact same startup config setting.

    bug NeedReproduce 
    opened by rlinxy 31
  • How to generate accounts, transactions, contracts, blocks, etc.

    How to generate accounts, transactions, contracts, blocks, etc.

    I am interested to test your blockchain by making some transactions , contracts and blocks. Is there any way (simple) to achieve captioned functionalities ?

    opened by saarshah 24
  • Epoch not increasing

    Epoch not increasing

    I have build conflux from source and running full node. But there are no epoch increasing is it error or something else.

    2019-09-20T06:37:18.777851764+05:00 INFO cfxcore::statistics - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 1 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 0, processed_block_count: 0 } }
    2019-09-20T06:37:19.061565987+05:00 INFO cfxcore::storage::impls::state_manager - number of nodes committed to db 3
    2019-09-20T06:37:19.779131718+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:20.779865465+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:21.780447768+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:22.780877889+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:23.781271727+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:23.781414351+05:00 INFO cfxcore::statistics - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 1 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 0, processed_block_count: 0 } }
    2019-09-20T06:37:23.781463141+05:00 INFO cfxcore::block_data_manager - Before gc cache_size=242 1 0 0 0
    2019-09-20T06:37:24.062025342+05:00 INFO cfxcore::storage::impls::state_manager - number of nodes committed to db 3
    2019-09-20T06:37:24.781949547+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:25.782615423+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:26.783125529+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:27.783498846+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:28.784069831+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:28.784156829+05:00 INFO cfxcore::block_data_manager - Before gc cache_size=242 1 0 0 0
    2019-09-20T06:37:28.784204845+05:00 INFO cfxcore::statistics - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 1 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 0, processed_block_count: 0 } }
    2019-09-20T06:37:29.062187727+05:00 INFO cfxcore::storage::impls::state_manager - number of nodes committed to db 3
    2019-09-20T06:37:29.784880403+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:30.785262847+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:31.785643293+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:32.786243354+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:33.786941114+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:33.787056495+05:00 INFO cfxcore::statistics - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 1 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 0, processed_block_count: 0 } }
    2019-09-20T06:37:33.787105638+05:00 INFO cfxcore::block_data_manager - Before gc cache_size=242 1 0 0 0
    2019-09-20T06:37:34.062364269+05:00 INFO cfxcore::storage::impls::state_manager - number of nodes committed to db 3
    2019-09-20T06:37:34.787760882+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:35.788372334+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:36.788991793+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:37.789444008+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:38.790060893+05:00 INFO cfxcore::sync::synchronization_protocol_handler - Catch-up mode: true, latest epoch: 0
    2019-09-20T06:37:38.790112319+05:00 INFO cfxcore::block_data_manager - Before gc cache_size=242 1 0 0 0
    2019-09-20T06:37:38.790145340+05:00 INFO cfxcore::statistics - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 1 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 0, processed_block_count: 0 } }
    2019-09-20T06:37:39.062577283+05:00 INFO cfxcore::storage::impls::state_manager - number of nodes committed to db 3
    
    opened by saarshah 23
  • Contract accounts should be able to stake and vote and sponsor

    Contract accounts should be able to stake and vote and sponsor

    It seems that the current implementation of the internal Staking contract does not support staking from contract accounts. As contract/multisign wallet exist in practice, we should allow these accounts to use the staking contract. -- It is okay to forbid them from using Admin and Sponsor contract though.

    BTW, internal_contract/README.md is a quite old version where withdrawal fee is not removed yet.

    opened by Regulusyg 20
  • Fullnode RPC and pub/sub need enhancement

    Fullnode RPC and pub/sub need enhancement

    1. Some local and test RPCs (e.g. txpool related RPCs) are very useful for scan and infuradevelopment, suggest fullnode to allow user to configure public/intranet access for those RPCs, just as what Ethereum did now.
    2. Need some enhancements for current PRCs and pub/sub for infura development:
      • RPC: some data missed in the returned logs of RPC cfx_getTransactionReceipt.
      • RPC: better to provide a public or local API to return receipts for specified block or even epoch number, e.g. getBlockReceipts(blockHash), getEpochReceipts(epoch), it will significantly increase the performance of data sync.
      • Pub/sub: atomically push batch epochs to client when pivot chain switched, which is handled in a lock on fullnode. Thus, client could also atomically handle pivot chain switch.
      • Pub/sub: allow user to specify which epoch to subscribe, e.g. latest_mined, latest_state, latest_confirmed or latest_checkpoint.
      • RPC & Pub/sub: support to return 4 epoch numbers, including latest_mined, latest_state, latest_confirmed or latest_checkpoint.
    enhancement help wanted 
    opened by boqiu 13
  • how to generate txs with transactiongen\src\lib.rs?

    how to generate txs with transactiongen\src\lib.rs?

    我想要在本地链上运行conflux节点测试conflux可以达到的吞吐率,但是直接运行start.sh后,只能打印出产生的区块信息,没有任何交易被打包。所以我阅读了conflux-rust源码,发现transactiongen\src\lib.rs有交易生成代码。该文件中共有三个FIXME,我按照第一个FIXME提示,将其中的new改为了start,将返回值从self改成了Result。 impl TransactionGenerator { // FIXME: rename to start and return Result pub fn start( consensus: SharedConsensusGraph, txpool: SharedTransactionPool, sync: SharedSynchronizationService, secret_store: SharedSecretStore, ) -> Result 但是在编译时报告参数错误,需要两个返回值。 Compiling txgen v0.1.0 (F:\Senior01\DiplomaPro\Code\conflux-rust\transactiongen) error[E0107]: wrong number of type arguments: expected 2, found 1 --> transactiongen\src\lib.rs:89:10 | 89 | ) -> Result | ^^^^^^^^^^^^ expected 2 type arguments 我没有足够的时间将conflux-rust源码完整阅读,所以开发人员可以告诉我如何修改该文件以随机生成大量的交易,从而测试在A Decentralized Blockchain with High Throughput and Fast Confirmation提到的吞吐率吗?

    opened by MemoryOfSnow 12
  • OOM with default parameters on 16GB-memory linux machines.

    OOM with default parameters on 16GB-memory linux machines.

    The default parameters are meant to keep the system stably running with the claimed throughput. Currently, after running for about a week, the process will be killed because of system OOM killer or failure to allocate new memory.

    We need to find out if it's because some significant memory usage is not counted or it's because we underestimate the memory usage in our cache-related calculation.

    bug P1 
    opened by peilun-conflux 11
  • Full node may set wrong state root after syncing checkpoints.

    Full node may set wrong state root after syncing checkpoints.

    The behavior is that a full node successfully syncs the headers and the checkpoint, and it enters CatchUpSyncBlockPhase, but all received blocks are marked partial invalid due to incorrect state root.

    The log containing the root cause has been garbage collected, so we probably need to reproduce this on TestNet again for further investigation.

    bug P1 
    opened by peilun-conflux 10
  • let conflux support rpc over https

    let conflux support rpc over https

    Case: Hi everyone, I'm a developer from the conflux community, I'm the developer of conflux-remix and I recently planned to release the plugin to the production environment of remix, https://remix.ethereum.org. it forces https, I can't use conflux http rpc in this environment

    relative bug: https://github.com/Conflux-Chain/conflux-remix/issues/11

    enhancement P3 
    opened by xiaods 10
  • start fullnode with archive data,but failed.

    start fullnode with archive data,but failed.

    2022-03-09T17:20:00.767880400+08:00 INFO main cfx_storage: - Overwriting computed state for epoch 0xf6cec5af1ee95f56038fc30589bcfeb4b960075c3c76b8a0eaa6d36e8e623b50, committed merkle root 0xa4ab3ffee7bd4325c7efdc71d1a04c94a89fe23a8f01a657e822110acb78d512, new merkle root 0xa4ab3ffee7bd4325c7efdc71d1a04c94a89fe23a8f01a657e822110acb78d512

    loginfo above how can i do? i am in windows 10 env.

    opened by bobzhangfw 9
  • memory allocation of 503316480 bytes failed

    memory allocation of 503316480 bytes failed

    一个新节点,上午开启full 模式在同步,但是下午 13:29 便出现 memory allocation of 503316480 bytes failed导致程序自动退出。

    这个错误信息,来自控制台输出的日志。这个自动退出问题,使得我的节点一直没能完成同步,花了一个周末时间还是未成功同步到最新状态。

    服务器信息

    df -h
    文件系统        容量  已用  可用 已用% 挂载点
    devtmpfs        1.9G     0  1.9G    0% /dev
    tmpfs           1.9G     0  1.9G    0% /dev/shm
    tmpfs           1.9G   25M  1.9G    2% /run
    tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
    /dev/vda1        40G   13G   25G   34% /
    tmpfs           379M     0  379M    0% /run/user/0
    tmpfs           379M     0  379M    0% /run/user/1000
    
    free -m -h
                  total        used        free      shared  buff/cache   available
    Mem:           3.7G        1.8G        1.2G         24M        750M        1.7G
    Swap:            0B          0B          0B
    
    wontchange 
    opened by ysqi 9
  • Epoch not increasing while upgrade to v2.1.0

    Epoch not increasing while upgrade to v2.1.0

    I'm running the node for RPC requests.

    ./conflux --config hydra.toml 
    

    Today I upgraded my node to v2.1.0 from v2.0.1

    The epoch seemed stuck at 56300000

    2022-10-13T14:42:33.512535304+00:00 INFO  IO Worker #1         cfxcore::sta - Statistics: StatisticsInner { sync_graph: SyncGraphStatistics { inserted_block_count: 1, inserted_header_count: 237500 }, consensus_graph: ConsensusGraphStatistics { inserted_block_count: 0, activated_block_count: 0, processed_block_count: 0 } }
    2022-10-13T14:42:34.038419699+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:34.038842355+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:34.257027754+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlocksByEpoch epoch_number=Num(56361374)
    2022-10-13T14:42:34.314690700+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:34.315696575+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:34.387119022+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlocksByEpoch epoch_number=Num(56361538)
    2022-10-13T14:42:34.574121542+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlocksByEpoch epoch_number=Num(35520722)
    2022-10-13T14:42:34.576372261+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlocksByEpoch epoch_number=Num(35520722)
    2022-10-13T14:42:34.576632201+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlockByHash hash=0x3562ff9375896eb0f60d3662274417a9a9331f7ffd4c537f533c700583259ae3 include_txs=true
    2022-10-13T14:42:34.580384622+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlockByHash hash=0x3562ff9375896eb0f60d3662274417a9a9331f7ffd4c537f533c700583259ae3 include_txs=true
    2022-10-13T14:42:34.581117471+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlockByHash hash=0x063e0501a95ac8735b522f7f3bf42fae0da74d92f9572c41d6a49142ded2935a include_txs=true
    2022-10-13T14:42:34.581422785+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_getBlockByHash hash=0x063e0501a95ac8735b522f7f3bf42fae0da74d92f9572c41d6a49142ded2935a include_txs=true
    2022-10-13T14:42:34.813232091+00:00 INFO  IO Worker #0         cfxcore::syn - Catch-up mode: true, latest epoch: 56300000 missing_bodies: 0
    2022-10-13T14:42:35.038443515+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:35.038990200+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:35.314006469+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    2022-10-13T14:42:35.316770804+00:00 INFO  http.worker00        client::rpc: - RPC Request: cfx_epochNumber(LatestMined)
    

    May I get some help?

    opened by devilrayzl 1
  • panicked at 'always set in DownloadingChunks'

    panicked at 'always set in DownloadingChunks'

    this is the first time I've tried running a conflux node. it seems I'm having an issue with an SQL database. I've tried basic troubleshooting but to no avail.

    NODE

    cfx_storage: - Failed to create sqlite db for ./blockchain_data\storage_db\snapshot\sqlite_full_sync_temp_cbfa414749218235ddab01640633a0fb1c0de8666e27b1c1ef66fcaa9fa610bce2d4579d6e69d86002fc3fded892650f244c3d4f66e015eab907a880df149318\shard_00, remove all temporary files ["./blockchain_data\storage_db\snapshot\sqlite_full_sync_temp_cbfa414749218235ddab01640633a0fb1c0de8666e27b1c1ef66fcaa9fa610bce2d4579d6e69d86002fc3fded892650f244c3d4f66e015eab907a880df149318\shard_00-wal", "./blockchain_data\storage_db\snapshot\sqlite_full_sync_temp_cbfa414749218235ddab01640633a0fb1c0de8666e27b1c1ef66fcaa9fa610bce2d4579d6e69d86002fc3fded892650f244c3d4f66e015eab907a880df149318\shard_00-shm"]

    STDERR

    details = '''panicked at 'always set in DownloadingChunks', core\src\sync\state\snapshot_chunk_sync.rs:410:26''' backtrace = ''' 0: 0x7ff672123105 - backtrace::backtrace::trace::h2e000f7fd2d813f0 1: 0x7ff672121f19 - backtrace::capture::Backtrace::new::h13f59ae35e9cd23e 2: 0x7ff671982dcc - crash_handler::setup_panic_handler::h62bc131a271d8856 3: 0x7ff6722532ba - std::panicking::rust_panic_with_hook at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\std\src\panicking.rs:702 4: 0x7ff67225300d - std::panicking::begin_panic_handler::closure$0 at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\std\src\panicking.rs:588 5: 0x7ff672250ae7 - std::sys_common::backtrace::__rust_end_short_backtracestd::panicking::begin_panic_handler::closure_env$0,never$ at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\std\src\sys_common\backtrace.rs:138 6: 0x7ff672252ce9 - std::panicking::begin_panic_handler at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\std\src\panicking.rs:584 7: 0x7ff67264c655 - core::panicking::panic_fmt at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\core\src\panicking.rs:142 8: 0x7ff67226b310 - core::panicking::panic_display at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\core\src\panicking.rs:72 9: 0x7ff67226b2bb - core::panicking::panic_str at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\core\src\panicking.rs:56 10: 0x7ff67264c4a9 - core::option::expect_failed at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\core\src\option.rs:1854 11: 0x7ff67160fdb4 - cfxcore::sync::state::snapshot_chunk_sync::SnapshotChunkSync::update_status::h59684900aa1d5a88 12: 0x7ff6717cd61d - <cfxcore::sync::synchronization_phases::CatchUpCheckpointPhase as cfxcore::sync::synchronization_phases::SynchronizationPhaseTrait>::next::h318ddee193712d71 13: 0x7ff6714b4f8e - cfxcore::sync::synchronization_protocol_handler::SynchronizationProtocolHandler::update_sync_phase::hb8b6f856927a6c95 14: 0x7ff6714ba6c2 - <cfxcore::sync::synchronization_protocol_handler::SynchronizationProtocolHandler as network::NetworkProtocolHandler>::on_timeout::h3e521e4cc01fe194 15: 0x7ff671cfc751 - <network::service::NetworkServiceInner as io::IoHandlernetwork::NetworkIoMessage>::timeout::hce66195a0fcd6b9a 16: 0x7ff671ce2b23 - io::worker::Worker::work_loop::h3004da15ce80df71 17: 0x7ff671d350e5 - std::sys_common::backtrace::__rust_begin_short_backtrace::h99508d1d9b346c9f 18: 0x7ff671d2e77e - std::thread::Builder::spawn::heddf3d911896cf93 19: 0x7ff672259b6c - alloc::boxed::impl$44::call_once at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc\library\alloc\src\boxed.rs:1872 20: 0x7ff672259b6c - alloc::boxed::impl$44::call_once at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc\library\alloc\src\boxed.rs:1872 21: 0x7ff672259b6c - std::sys::windows::thread::impl$0::new::thread_start at /rustc/a8314ef7d0ec7b75c336af2c9857bfaf43002bfc/library\std\src\sys\windows\thread.rs:56 22: 0x7ff849957034 - BaseThreadInitThunk 23: 0x7ff84a9226a1 - RtlUserThreadStart '''

    opened by lilslim 2
  • Fix double-lock in sync_manager.rs

    Fix double-lock in sync_manager.rs

    There is a double-lock bug in fn request_now_from_peer: The first lock: https://github.com/Conflux-Chain/conflux-rust/blob/cc2c436a3bd76f62d196cff0d8845efbf1fa149d/core/src/light_protocol/handler/sync/common/sync_manager.rs#L291 Call insert_waiting: https://github.com/Conflux-Chain/conflux-rust/blob/cc2c436a3bd76f62d196cff0d8845efbf1fa149d/core/src/light_protocol/handler/sync/common/sync_manager.rs#L314 The second lock: https://github.com/Conflux-Chain/conflux-rust/blob/cc2c436a3bd76f62d196cff0d8845efbf1fa149d/core/src/light_protocol/handler/sync/common/sync_manager.rs#L146-L148

    The fix is to add drop before calling insert_waiting.

    Found the bug with my static detector lockbud.


    This change is Reviewable

    opened by BurtonQin 4
  • Error while handling message: genesis hash mismatches

    Error while handling message: genesis hash mismatches

    I am trying to follow the instructions from here. However I keep getting the error message below

    essage, peer=0x5da9…23de, msgid=35, error=Error(InvalidStatus("genesis hash mismatches"), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
    2022-07-16T21:08:21.873298607-04:00 WARN  Socket IO Worker #1  cfxcore::syn - Error while handling message, peer=0xc22a…7efb, msgid=35, error=Error(InvalidStatus("genesis hash mismatches"), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
    2022-07-16T21:08:22.184313374-04:00 WARN  Socket IO Worker #0  cfxcore::syn - Error while handling message, peer=0x838e…7cd8, msgid=35, error=Error(InvalidStatus("genesis hash mismatches"), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })
    

    I am on v2.0.0 and cargo build --release works . ./dev-support/test.sh had some errors (which may be an issue?) but cargo test --release --all seems to work

    Here is my hydra.toml diff with origin/master

    jonathan@jonathan-HP-Pavilion-Laptop-15t-eg100:~/conflux-rust/run$ git diff origin/master hydra.toml
    diff --git a/run/hydra.toml b/run/hydra.toml
    index e55a662c..91abf5e7 100644
    --- a/run/hydra.toml
    +++ b/run/hydra.toml
    @@ -33,7 +33,7 @@ bootnodes="cfxnode://dc79bc70833e797ba41eff5bda67c0484abca4918ef38289b5f96acd3da
     #       in fixed period, see ``dev_block_interval_ms'')
     #     * Skip catch-up mode even there is no peer
     #
    -# mode = ""
    +mode = "dev"
     
     # If you want to setup a single node running Conflux for development. You should
     # COMMENT the bootnodes setting and you should use the following parameters:
    @@ -62,8 +62,9 @@ bootnodes="cfxnode://dc79bc70833e797ba41eff5bda67c0484abca4918ef38289b5f96acd3da
     # The default value is "stratum" if `mining_author` is set.
     # If the value is set and not "disable", `mining_author` must be set.
     #
    -# mining_type = "stratum"
    -
    +start_mining = "true"
    +mining_type = "stratum"
    +mining_author = "cfx:aar87w8511r2mgdfd3f00j819160v29zw6guvtvrvp"
     # Listen address for stratum
     #
     # stratum_listen_address = "127.0.0.1"
    @@ -106,7 +107,7 @@ log_conf="log.yaml"
     # If not set, the process will try to find out the public IP with best effort, and use `tcp_port` as public port.
     # However, it's HIGHLY RECOMMENDED to set the value manually, especially for machines with IP translated by NAT.
     #
    -# public_address="1.1.1.1"
    +public_address="74.109.250.72:32323"
     
     # `tcp_port` is the TCP port that the process listens for P2P messages. The default is 32323.
     #
    @@ -144,10 +145,10 @@ log_conf="log.yaml"
     # Note that to serve transaction-related RPCs, `persist_tx_index` should also be set to `true` or
     # the node will only be able to handle very recent transactions.
     #
    -# jsonrpc_ws_port=12535
    -# jsonrpc_tcp_port=12536
    -# jsonrpc_http_port=12537
    -# jsonrpc_local_tcp_port=12538
    +jsonrpc_ws_port=12535
    +jsonrpc_tcp_port=12536
    +jsonrpc_http_port=12537
    +jsonrpc_local_tcp_port=12538
     jsonrpc_local_http_port=12539
     # jsonrpc_local_ws_port=12540
     # jsonrpc_http_eth_port=8545
    @@ -255,10 +256,6 @@ jsonrpc_local_http_port=12539
     #
     # min_peers_tx_propagation = 8
     
    -# Minimum number of normal-phase peers to estimate the current global latest epoch for phase change.
    -#
    -# min_phase_change_normal_peer_count = 3
    -
     # The time to maintain received transactions to avoid duplicated requests.
     #
     # received_tx_index_maintain_timeout_ms = 300_000
    @@ -387,7 +384,7 @@ jsonrpc_local_http_port=12539
     
     # Minimum allowed transaction gas price in the transaction pool.
     #
    -# tx_pool_min_tx_gas_price = 1_000_000_000
    +# tx_pool_min_tx_gas_price = 1
     
     # ------------------ Storage Parameters ----------------------
     
    @@ -519,10 +516,10 @@ jsonrpc_local_http_port=12539
     #
     # future_block_buffer_capacity = 32768
     
    -# Maximum number of log entries returned from cfx_getLogs and eth_getLogs.
    -# If not set, cfx_getLogs and eth_getLogs will not limit the number of logs returned.
    +# Maximum number of log entries returned from cfx_getLogs.
    +# If not set, cfx_getLogs will not limit the number of logs returned.
     #
    -get_logs_filter_max_limit = 5000
    +# get_logs_filter_max_limit = 10
     
     # Epoch batch size used in log filtering.
     # Larger batch sizes may improve performance but might also prevent consensus from making progress under high RPC load.
    @@ -535,12 +532,6 @@ get_logs_filter_max_limit = 5000
     #
     # get_logs_filter_max_epoch_range = 10000
     
    -# The maximal allowed number of blocks between `from_block` and `to_block` in the filter to call `cfx_getLogs`.
    -# If not set, there is no limit on the gap.
    -# By default it is not set.
    -#
    -# get_logs_filter_max_block_number_range = 10000
    -
     # Maximum number of transactions allowed for peers to send to a catch-up node.
     #
     # max_trans_count_received_in_catch_up = 60_000
    @@ -554,8 +545,4 @@ chain_id = 1029
     # The EVM chain ID of Conflux Network (EVM space)
     # 1030 for Mainnet (Hydra)
     #
    -evm_chain_id = 1030
    -hydra_transition_number = 92060600
    -hydra_transition_height = 36935000
    -cip43_init_end_number = 92751800
    -pos_reference_enable_height = 37400000
    \ No newline at end of file
    +evm_chain_id = 1030
    \ No newline at end of file
    

    Any ideas?

    opened by anthonypan08 6
Releases(v2.2.1-fixpos)
  • v2.2.1(Dec 29, 2022)

    RPC Changes

    • Fix cfx_getDepositList and cfx_getVoteList RPC return value format to use hex strings.

    Improvements

    • Retry the PoS election transaction if it's not included.
    • Avoid duplicate PoS peer broadcast.

    Bug Fixes

    • Fix issues in eSpace filter and pubsub RPCs that may return incorrect or duplicate log entries.
    • Fix an issue in eSpace filter and pubsub RPCs that may get stuck for a long time.
    • Fix an issue that may make valid transactions unable to be accepted by the transaction pool.
    • Disable PoS state pruning by default.
    Source code(tar.gz)
    Source code(zip)
    conflux-macos12-x64-v2.2.1.zip(15.73 MB)
    conflux_linux_x64_v2.2.1-compatible.zip(21.58 MB)
    conflux_linux_x64_v2.2.1.zip(21.58 MB)
    conflux_mac_m1_v2.2.1.zip(17.44 MB)
    conflux_win10_x64_v2.2.1-compatible.zip(26.45 MB)
    conflux_win10_x64_v2.2.1.zip(26.47 MB)
  • v2.2.1-testnet(Dec 15, 2022)

    Note that pos_config/pos_config.yaml is updated by adding consensus: hardcoded_epoch_committee. Please replace this file or apply this change manually before restarting the node.

    Incompatible Changes

    • Hardcode a PoS committee at the PoS epoch 7760 to fix the empty committee issue for Testnet.

    RPC Changes

    • Fix cfx_getDepositList and cfx_getVoteList RPC return value format to use hex strings.

    Improvements

    • Retry the PoS election transaction if it's not included.
    • Save the PoS CPU usage by limit the max pos voting power in Testnet.
    • Avoid duplicate PoS peer broadcast.

    Bug Fixes

    • Fix issues in eSpace filter and pubsub RPCs that may return incorrect or duplicate log entries.
    • Fix an issue in eSpace filter and pubsub RPCs that may get stuck for a long time.
    • Fix an issue that may make valid transactions unable to be accepted by the transaction pool.
    • Disable PoS state pruning by default to avoid OutOfMemory issues.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_x64_v2.2.1-testnet-compatible.zip(21.57 MB)
    conflux_linux_x64_v2.2.1-testnet.zip(21.57 MB)
    conflux_macos12_x64_v2.2.1_testnet.zip(15.73 MB)
    conflux_mac_m1_v2.2.1-testnet.zip(17.43 MB)
    conflux_win10_x64_v2.2.1-testnet-compatible.zip(26.45 MB)
    conflux_win10_x64_v2.2.1-testnet.zip(26.45 MB)
  • v2.2.0(Nov 3, 2022)

    This release introduces incompatible changes and must be upgraded before the block number 137740000 and PoS block number 360900.

    RPC Improvements

    • Add filter RPCs in eSpace including eth_newFilter, eth_newBlockFilter, eth_newPendingTransactionFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter. Note that you need to set poll_lifetime_in_seconds in the configuration to enable these RPCs.
    • Support finalized block tag and compatibility support for safe tag in eSpace RPCs.
    • Use a random 16 byte value for eth_filter id instead of an increasing integer.

    Bug Fix

    • Fix the state availability check in RPCs when the full history states are available.
    • Fix a possible panic in PoS peer connection.
    • Fix an issue in the sigma protocol.
    • Fix a rare unexpected push delay in pubsub RPCs.
    • Fix the wrong unlock time setting for CIP99.
    • Fix the epoch_height error when cfx_call is called on an old history state.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.2.0-compatible.zip(21.55 MB)
    conflux_linux_v2.2.0.zip(21.55 MB)
    conflux_macos12_x64_v2.2.0.zip(15.71 MB)
    conflux_mac_m1_v2.2.0.zip(17.42 MB)
    conflux_win10_x64_v2.2.0-compatible.zip(26.42 MB)
    conflux_win10_x64_v2.2.0.zip(26.43 MB)
  • v2.2.0-testnet(Oct 28, 2022)

    This release includes an incompatible fix. All nodes should be upgraded before the epoch number reaches 125360000.

    Bug Fixes

    • Fix a rare unexpected push delay in pubsub RPCs.
    • Fix a possible panic in PoS peer connecting.
    • Fix the state availability check in RPCs when the full history states are available.
    Source code(tar.gz)
    Source code(zip)
    conflux-x64-macos12-v2.2.0-testnet.zip(15.69 MB)
    conflux_linux_v2.2.0-testnet-compatible.zip(21.54 MB)
    conflux_linux_v2.2.0-testnet.zip(21.55 MB)
    conflux_mac_m1_v2.2.0-testnet.zip(17.40 MB)
    conflux_win10_x64_v2.2.0-testnet-compatible.zip(26.42 MB)
    conflux_win10_x64_v2.2.0-testnet.zip(26.42 MB)
  • v2.1.1-testnet(Oct 9, 2022)

    This release includes an incompatible fix. All nodes should be upgraded before the epoch number reaches 122700000.

    RPC Improvement

    • When querying logs, use LatestState instead of the to epoch number when the to epoch number is greater than LatestState.
    • Add filter RPCs in eSpace including eth_newFilter, eth_newBlockFilter, eth_newPendingTransactionFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter. Note that you need to set poll_lifetime_in_seconds in the configuration to enable these RPCs.

    Bug Fix

    • Fix a contract interface issue for posStakeForVotes.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.1.1-testnet-compatible.zip(21.54 MB)
    conflux_linux_v2.1.1-testnet.zip(21.55 MB)
    conflux_macos12_x64_v2.1.1-testnet.zip(15.69 MB)
    conflux_mac_m1_v2.1.1-testnet.zip(17.40 MB)
    conflux_win10_x64_v2.1.1-testnet-compatible.zip(26.42 MB)
    conflux_win10_x64_v2.1.1-testnet.zip(26.41 MB)
  • v2.1.0(Sep 26, 2022)

    This release introduces a new hardfork. All nodes should be upgraded before the epoch number reaches 56800000 (estimated on Oct 18). Most CIPs will be enabled when the block number reaches 133800000 (estimated on Oct 25), and CIP-99 will be enabled when the PoS block number reaches 330000 (estimated on Oct 25).

    Incompatible Changes

    • CIP-94 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-94.md): This CIP proposes to use on-chain DAO voting to decide and update reward parameters without hardfork.
    • CIP-97 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-97.md): This CIP proposes to remove account’s staking lists.
    • CIP-98 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-98.md): Fix a bug in BLOCKHASH opcode in eSpace.
    • CIP-99 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-99.md): Allow more not-voting terms before we force-retire a node, and make the unlock period of a retiring node shorter to allow the node to rejoin the PoS voting faster.
    • CIP105 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-105.md): PoS staking based minimal DAO vote count.

    Configuration Improvement

    • Add configuration enable_single_mpt_storage to enable storing all history states. Set single_mpt_space = "evm" to only store eSpace states. Note that you'll need to resync an archive node to reconstruct all the history states.

    Storage Improvement

    • Allow snapshots to be removed during recovery. This reduces the disk space requirement for full node sync or recovery.

    RPC Improvement

    • Support eth_subscribe and eth_unsubscribe in eSpace RPCs.
    • Add a RPC method cfx_getParamsFromVote to return the currently used value of the voted parameters.
    • Return null for getting skipped transactions and receipts. Whether they will be returned was nondeterministic before, but now they are ensured to be null.
    • When querying logs, use LatestState instead of the to epoch number when the to epoch number is greater than LatestState.

    Transaction Pool Improvement

    • Fix an issue that may fail to recycle packed but skipped transactions.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.1.0-compatible.zip(21.51 MB)
    conflux_linux_v2.1.0.zip(21.51 MB)
    conflux_macOS12-v2.1.0.zip(15.66 MB)
    conflux_mac_m1_v2.1.0.zip(17.36 MB)
    conflux_win10_x64_v2.1.0-compatible.zip(26.38 MB)
    conflux_win10_x64_v2.1.0.zip(26.37 MB)
  • v2.1.0-2-testnet(Sep 15, 2022)

    Incompatible Changes

    • CIP105: PoS staking based minimal DAO vote count. This will be enabled at block number 122,700,000. (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-105.md)

    Transaction Pool Improvement

    • Fix an issue that may fail to recycle packed but skipped transactions.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.1.0-2-testnet-compatible.zip(21.50 MB)
    conflux_linux_v2.1.0-2-testnet.zip(21.50 MB)
    conflux_macos12_v2.1.0-2-testnet.zip(15.65 MB)
    conflux_mac_m1_v2.1.0-2-testnet.zip(17.35 MB)
    conflux_win10_x64_v2.1.0-2-testnet-compatible.zip(26.37 MB)
    conflux_win10_x64_v2.1.0-2-testnet.zip(26.37 MB)
  • v2.1.0-testnet(Aug 11, 2022)

    This release introduces a new hardfork. All nodes should be upgraded before the epoch number reaches 88100000.

    Incompatible Changes

    • CIP-94 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-94.md): This CIP proposes to use on-chain DAO voting to decide and update reward parameters without hardfork.
    • CIP-97 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-97.md): This CIP proposes to remove account’s staking lists.
    • CIP-98 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-98.md): Fix a bug in BLOCKHASH opcode in eSpace.
    • CIP-99 (https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-99.md): Allow more not-voting terms before we force-retire a node, and make the unlock period of a retiring node shorter to allow the node to rejoin the PoS voting faster.

    Configuration Improvement

    • Add configuration enable_single_mpt_storage to enable storing all history states. Set single_mpt_space = "evm" to only store eSpace states. Note that you'll need to resync an archive node to reconstruct all the history states.

    Storage Improvement

    • Allow snapshots to be removed during recovery. This reduces the disk space requirement for full node sync or recovery.

    RPC Improvement

    • Support eth_subscribe and eth_unsubscribe in eSpace RPCs.
    • Add a RPC method cfx_getParamsFromVote to return the currently used value of the voted parameters.
    • Return null for getting skipped transactions and receipts. Whether they will be returned was nondeterministic before, but now they are ensured to be null.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.1.0-testnet-compatible.zip(21.49 MB)
    conflux_linux_v2.1.0-testnet.zip(21.50 MB)
    conflux_macOS12_x64_v2.1.0-testnet.zip(15.65 MB)
    conflux_mac_m1_v2.1.0-testnet.zip(17.31 MB)
    conflux_win10_x64_v2.1.0-testnet-compatible.zip(26.36 MB)
    conflux_win10_x64_v2.1.0-testnet.zip(26.37 MB)
  • v2.0.3(Jul 29, 2022)

    Incompatible RPC Changes

    • cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset. They are not efficient and can be replaced by setting the block/epoch range instead.
    • cfx_clientVersion will have include more information like web3_clientVersion in eSpace.
    • fromEpoch will default to "latest_state" in cfx_getLogs.
    • fromBlock will default to "latest" in eth_getLogs.

    Improvements

    Storage Improvements

    • Avoid re-executing blocks if possible. This will accelerate the recovery process and reduce the disk usage if the node is restarted fast.

    Configuration Improvements

    • eSpace will be enabled for dev mode with a default configuration.
    • Enable persit_tx_index for Archive nodes automatically.

    Bug Fixes

    • Fix a possible panic caused by inaccurate local timestamps.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.3-compatible.zip(21.40 MB)
    conflux_linux_v2.0.3.zip(21.35 MB)
    conflux_mac_m1_v2.0.3.zip(17.24 MB)
    conflux_win10_x64_v2.0.3-compatible.zip(26.29 MB)
    conflux_win10_x64_v2.0.3.zip(26.29 MB)
  • v2.0.3-testnet(Jul 19, 2022)

    Incompatible RPC Changes

    • cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset. They are not efficient and can be replaced by setting the block/epoch range instead.
    • cfx_clientVersion will have include more information like web3_clientVersion in eSpace.
    • fromEpoch will default to "latest_state" in cfx_getLogs.
    • fromBlock will default to "latest" in eth_getLogs.

    Improvements

    Storage Improvements

    • Avoid re-executing blocks if possible. This will accelerate the recovery process and reduce the disk usage if the node is restarted fast.

    Configuration Improvements

    • eSpace will be enabled for dev mode with a default configuration.
    • Enable persit_tx_index for Archive nodes automatically.

    Bug Fixes

    • Fix a possible panic caused by inaccurate local timestamps.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.3-testnet-compatible.zip(21.39 MB)
    conflux_linux_v2.0.3-testnet.zip(21.39 MB)
    conflux_macos12_x86_v2.0.3-testnet.zip(15.57 MB)
    conflux_mac_m1_v2.0.3-testnet.zip(17.24 MB)
    conflux_win10_x64_v2.0.3-testnet-compatible.zip(26.28 MB)
    conflux_win10_x64_v2.0.3-testnet.zip(26.27 MB)
  • v2.0.2(Jul 4, 2022)

    Changelog v2.0.2

    RPC Deprecation Announcement

    • Starting from v2.0.3, cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset. They are not efficient and can be replaced by setting the block/epoch range instead.
    • Starting from v2.0.3, cfx_clientVersion will have include more information like web3_clientVersion in eSpace.
    • Starting from v2.0.3, fromEpoch will default to "latest_state" in cfx_getLogs.
    • Starting from v2.0.3, fromBlock will default to "latest" in eth_getLogs.

    Improvements

    RPC Improvements

    • Improve the performance of eth_getLogs.
    • Add a new RPC eth_getAccountPendingTransactions to get pending transactions by address, also return the first pending transaction's pending reason.
    • Support WebSockets for eth APIs.
    • Support block hash param for eth_call (EIP1898).
    • cfx_call, cfx_estimateGasAndCollateral, eth_call, and eth_estimate will respect from's balance if passed, if balance is not enough will return error. If from is not passed then use a random one, which's balance will be very big.
    • If cfx_call, cfx_estimateGasAndCollateral raise error, and the error.data is string, it will directly return instead of being hex encoded.
    • cfx_sendRawTransaction will reject transaction if sender's balance is not enough.

    Transaction Pool Improvements

    • Set the minimum gas price to 1 GDrip by default for packing transaction

    Storage Improvement

    • Improve the snapshot copy-on-write merging performance on XFS file systems.

    Bug Fixes

    • Fix trace validity for transactions reverted in the top checkpoint.
    • Fix phantom trace length mismatch issue with failed transactions.
    • Fix incorrect estimations from cfx_estimateGasAndCollateral.
    • Fix the issues that the node enters NormalPhase too soon and gets stuck on snapshot state download.
    • PoS nodes will not elect before entering the normal phase to avoid being force_retired.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.2-compatible.zip(20.20 MB)
    conflux_linux_v2.0.2.zip(20.19 MB)
    conflux_mac_m1_v2.0.2.zip(15.92 MB)
    conflux_mac_x64_v2.0.2.zip(14.90 MB)
    conflux_win10_x64_v2.0.2-compatible.zip(25.77 MB)
    conflux_win10_x64_v2.0.2.zip(25.78 MB)
  • v2.0.2-testnet-fix(Jun 22, 2022)

    RPC Deprecation Announcement

    • Starting from v2.0.3, cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset. They are not efficient and can be replaced by setting the block/epoch range instead.
    • Starting from v2.0.3, cfx_clientVersion will have include more information like web3_clientVersion in eSpace.
    • Starting from v2.0.3, fromEpoch will default to "latest_state" in cfx_getLogs.
    • Starting from v2.0.3, fromBlock will default to "latest" in eth_getLogs.

    Bug Fix

    • Fix some issues that cause cfx_estimateGasAndCollateral and cfx_call to hang.
    • Fix incorrect estimations from cfx_estimateGasAndCollateral.
    • Fix the issues that the node enters NormalPhase too soon and gets stuck on snapshot state download.
    • PoS nodes will not elect before entering the normal phase to avoid being force_retired.

    Improvement

    • If cfx_call, cfx_estimateGasAndCollateral raise error, and the error.data is string, it will directly return instead of being hex encoded.
    • cfx_sendRawTransaction will reject transaction if sender's balance is not enough.
    • More snapshot copy-on-write merging performance optimization on XFS file systems.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.2-testnet-fix-compatible.zip(20.20 MB)
    conflux_linux_v2.0.2-testnet-fix.zip(20.19 MB)
    conflux_mac_m1_v2.0.2-testnet-fix.zip(15.92 MB)
    conflux_mac_x86_v2.0.2-testnet-fix.zip(14.89 MB)
    conflux_win10_x64_v2.0.2-testnet-fix-compatible.zip(25.75 MB)
    conflux_win10_x64_v2.0.2-testnet-fix.zip(25.76 MB)
  • v2.0.2-testnet(May 9, 2022)

    RPC Deprecation Announcement

    • Starting from v2.0.3, cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset. They are not efficient and can be replaced by setting the block/epoch range instead.
    • Starting from v2.0.3, cfx_clientVersion will have include more information like web3_clientVersion in eSpace.
    • Starting from v2.0.3, fromEpoch will default to "latest_state" in cfx_getLogs.
    • Starting from v2.0.3, fromBlock will default to "latest" in eth_getLogs.

    Improvements

    RPC Improvements

    • Improve the performance of eth_getLogs.
    • Add a new RPC eth_getAccountPendingTransactions to get pending transactions by address, also return the first pending transaction's pending reason.
    • Support WebSockets for eth APIs.
    • Support block hash param for eth_call (EIP1898).
    • cfx_call, cfx_estimateGasAndCollateral, eth_call, and eth_estimate will respect from's balance if passed, if balance is not enough will return error. If from is not passed then use a random one, which's balance will be very big.

    Transaction Pool Improvements

    • Set the minimum gas price to 1 GDrip by default for packing transaction

    Storage Improvement

    • Improve the snapshot copy-on-write merging performance on XFS file systems.

    Bug Fixes

    • Fix trace validity for transactions reverted in the top checkpoint.
    • Fix phantom trace length mismatch issue with failed transactions.
    • Fix a possible underflow crash in eth_estimateGas.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.2-testnet-compatible.zip(20.17 MB)
    conflux_linux_v2.0.2-testnet.zip(20.18 MB)
    conflux_mac_m1_v2.0.2-testnet.zip(15.90 MB)
    conflux_win10_x64_v2.0.2-testnet-compatible.zip(25.72 MB)
    conflux_win10_x64_v2.0.2-testnet.zip(25.73 MB)
  • v2.0.1(Mar 30, 2022)

    Improvements

    RPC Deprecation Announcement

    • Starting from v2.0.3, cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset. They are not efficient and can be replaced by setting the block/epoch range instead.
    • Starting from v2.0.3, cfx_clientVersion will have include more information like web3_clientVersion in eSpace.
    • Starting from v2.0.3, fromEpoch will default to "latest_state" in cfx_getLogs.
    • Starting from v2.0.3, fromBlock will default to "latest" in eth_getLogs.

    RPC Improvements

    • Report error in cfx_getLogs and eth_getLogs if get_logs_filter_max_limit is configured but the query would return more logs. The previous behavior of cfx_getLogs was to silently truncate the result. The previous behavior of eth_getLogs was to raise an error when filter.limit is too low, regardless of how many logs the query would result in.
    • eth_gasPrice now estimate gas prices accurately instead of returning a fixed value.
    • Support phantom transactions and return correct fields in eSpace trace RPCs.
    • Add fields valid and createType for eSpace trace RPCs.
    • Add RPC rpc_methods to return all available methods and rpc_modules to return all RPC modules.
    • Add totalEspaceTokens in the response of cfx_getSupplyInfo.
    • Add local RPCs pos_start_voting, pos_stop_voting, and pos_voting_status. Check #2438 for details.
    • Accept requests with zero as sender in eth_call.
    • Accept unknown fields in eth_call.

    Configuration Improvements

    • Allow PoS voting nodes to have running backups. #2438 includes an introduction.
    • Add config parameter get_logs_filter_max_block_number_range for limiting the maximum gap between from_block and to_block during Core space log filtering (cfx_getLogs). Note: eSpace blocks correspond to epochs in Core space, so the range in eth_getLogs can be limited using get_logs_filter_max_epoch_range.
    • Add config parameter min_phase_change_normal_peer_count to set the number of normal-phase peers needed for phase change. The default value is set to 3 to make it more robust.
    • Add environment variable CFX_POS_KEY_ENCRYPTION_PASSWORD to configure pos key encryption password. Check #2464 for details.
    • Set a proper max open files with ulimit in the default Linux/macOS start bash script.
    • Improve the client version output to include more information.

    Transaction Pool Improvements

    • Allow pending transactions to be replaced unconditionally after 200000 epochs.

    Bug Fixes

    • Fix an issue that phantom transactions may have the same hash. Now all phantom transactions have different hashes after this fix.
    • Create PoS log file directory if it does not exist.
    • Fix a panic issue when the node is started with stdout unavailable.
    • Fix an issue that an old transaction is not replaced according to a higher epoch_height.
    • Increase the request timeout upper bound to fix sync issues in normal cases.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.1-compatible.zip(18.67 MB)
    conflux_linux_v2.0.1.zip(18.67 MB)
    conflux_mac_m1_v2.0.1.zip(15.91 MB)
    conflux_win10_x64_v2.0.1-compatible.zip(25.74 MB)
    conflux_win10_x64_v2.0.1.zip(25.73 MB)
  • v2.0.1-testnet(Mar 23, 2022)

    Improvements

    RPC Deprecation Announcement

    • cfx_getLogs and eth_getLogs will no longer support the parameters limit and offset starting from v2.0.3. They are not efficient and can be replaced by setting the block/epoch range instead.

    RPC Improvements

    • Report error in cfx_getLogs and eth_getLogs if get_logs_filter_max_limit is configured but the query would return more logs. The previous behavior of cfx_getLogs was to silently truncate the result. The previous behavior of eth_getLogs was to raise an error when filter.limit is too low, regardless of how many logs the query would result in.
    • eth_gasPrice now estimate gas prices accurately instead of returning a fixed value.
    • Support phantom transactions and return correct fields in eSpace trace RPCs.
    • Add fields valid and createType for eSpace trace RPCs.
    • Add RPC rpc_methods to return all available methods and rpc_modules to return all RPC modules.
    • Add totalEspaceTokens in the response of cfx_getSupplyInfo.
    • Add local RPCs pos_start_voting, pos_stop_voting, and pos_voting_status. Check #2438 for details.
    • Accept requests with zero as sender in eth_call.
    • Accept unknown fields in eth_call.

    Configuration Improvements

    • Allow PoS voting nodes to have running backups. #2438 includes an introduction.
    • Add config parameter get_logs_filter_max_block_number_range for limiting the maximum gap between from_block and to_block during Core space log filtering (cfx_getLogs). Note: eSpace blocks correspond to epochs in Core space, so the range in eth_getLogs can be limited using get_logs_filter_max_epoch_range.
    • Add config parameter min_phase_change_normal_peer_count to set the number of normal-phase peers needed for phase change. The default value is set to 3 to make it more robust.
    • Add environment variable CFX_POS_KEY_ENCRYPTION_PASSWORD to configure pos key encryption password.
    • Set a proper max open files with ulimit in the default Linux/macOS start bash script.

    Transaction Pool Improvements

    • Allow pending transactions to be replaced unconditionally after 200000 epochs.

    Bug Fixes

    • Fix an issue that phantom transactions may have the same hash. Now all phantom transactions have different hashes after this fix.
    • Create PoS log file directory if it does not exist.
    • Fix a panic issue when the node is started with stdout unavailable.
    • Fix an issue that an old transaction is not replaced according to a higher epoch_height.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.1-testnet-compatible.zip(18.65 MB)
    conflux_linux_v2.0.1-testnet.zip(18.65 MB)
    conflux_mac_v2.0.1-testnet.zip(15.89 MB)
  • v2.0.0-fix(Feb 22, 2022)

    This release fixes the issues during the hardfork by discarding the deprecated forks generated by not upgraded miners. The PoS register end block number is delayed to 92751800 and the PoS chain launching epoch number is delayed to 37400000.

    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.0-fix-compatible.zip(20.79 MB)
    conflux_linux_v2.0.0-fix.zip(20.79 MB)
    conflux_mac_v2.0.0-fix.zip(16.84 MB)
    conflux_win10_x64_v2.0.0-fix-compatible.zip(25.96 MB)
    conflux_win10_x64_v2.0.0-fix.zip(25.96 MB)
    pos_config-hydra.tgz(8.57 KB)
  • v2.0.0(Feb 14, 2022)

    To node operators and miners:

    Please upgrade your node before Epoch Number reaches 36935000 or Block Number reaches 92060600 (around 12:00 Feb.23rd, 2022(GMT+8)).

    Please add pos_config (will be updated here after Feb.25th at 12:00) before Epoch Number reaches 37230000 (around Feb.28th 12:00).

    If the binary cannot start, you can choose to compile the binary on your own platform or use the compatible version. Note that the compatible version has poorer performance and requires better hardware to run stably(possibly >4 cores).

    The first time a v2.0 node starts, it will generate a PoS private key (stored in pos_config/key) and a password is required to encrypt it. The password is needed each time the node restarts. If the node will be registered as a PoS voter, please make sure the key file and the password are not leaked or deleted/forgotten.

    Spec Incompatible Changes

    • CIP-43:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-43.md
    • CIP-64:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-64.md
    • CIP-71:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-71.md
    • CIP-76:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-76.md
    • CIP-78:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-78.md
    • CIP-86:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-86.md
    • CIP-90:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-90.md
    • CIP-92:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-92.md

    RPC Improvements

    Check this hardfork document for details: https://developer.confluxnetwork.org/v2-hardfork/hydra_overview/#rpc-changes

    PoS RPC

    Added a new group of PoS-related methods with a prefix of pos. Current information about the PoS chain can be acquired using these methods.

    PoW RPC

    Hardfork PoW RPC Changes

    • Added a new field in the block structure and pubsub header structure:
      • posReference: the hash of the PoS latest block at the time when the PoW block is mined
    • cfx_getStatus response have two more fields: latestFinalized and ethereumSpaceChainId

    Incompatible Trace Changes

    • Refactor the design and implementation of transaction traces. trace RPCs will be affected. RPC server runnings need to resync all trace data to support trace RPCs correctly. Check https://github.com/Conflux-Chain/CIPs/issues/88 for details.

    New Tag

    • Added a new epochNumber tag:
      • latestFinalized:the latest finalized block

    New RPCs

    • Added three new RPC methods:
      • cfx_openedMethodGroups
      • cfx_getPoSRewardByEpoch
      • cfx_posEconomics:
        • view the current overall economics information of PoS
    • txpool-related RPC
      • Added a new group of txpool-related RPC methods with a prefix of txpool which can be used to view various kinds of information regarding the current transaction pool.

    eth RPC

    Introduce Ethereum-comptible eth RPCs after CIP-90. Refer to this link for a list of implemented methods: https://developer.confluxnetwork.org/conflux-doc/docs/EVM-Space/evm_space_rpc_compatibility

    Configuration Improvements

    • Remove default dev mode ports. The users should configure open ports if they want to access RPCs.
    • Add configuration jsonrpc_http_eth_port and jsonrpc_ws_eth_port to set eth-space RPC endpoint ports.

    Transaction Pool Improvements

    • Implement transaction pool garbage collection based on strict priorities (including transaction readiness, gas price, e.t.c.).
    • Sample a subset of transactions with higher gas prices for packing. This reduces the packing time for high-price transactions.
    • Reject invalid recipient in tx pool.

    Bug Fixes

    • Fixed a bug that may slow down the syncing process for archive nodes.
    • Fix an issue that if the node is serving multiple state-related RPCs concurrently, some states may fail to be opened.
    • Fix a possible OOM issue during node restarting.
    • Fix blocked catching up issues of a heavy fork subtree.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.0-compatible.zip(20.83 MB)
    conflux_linux_v2.0.0.zip(20.83 MB)
    conflux_mac_v2.0.0.zip(16.83 MB)
    conflux_win10_x64_v2.0.0-compatible.zip(26.00 MB)
    conflux_win10_x64_v2.0.0.zip(26.01 MB)
  • v2.0.0-4-testnet(Feb 14, 2022)

    Improvements

    • Support "phantom" eSpace transactions. (https://developer.confluxnetwork.org/conflux-doc/docs/EVM-Space/evm_space_vm_compatibility/#phantom-transactions)
    • Support more eth space RPCs.

    Bug Fixes

    • Fix eth space RPC issues.
    • Fix cfx space RPCs affected by introducing eSpace transactions.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.0-4-testnet-compatible.zip(20.83 MB)
    conflux_linux_v2.0.0-4-testnet.zip(20.84 MB)
    conflux_mac_v2.0.0-4-testnet.zip(16.83 MB)
    conflux_win10_x64_v2.0.0-4-testnet-compatible.zip(26.00 MB)
    conflux_win10_x64_v2.0.0-4-testnet.zip(26.02 MB)
  • v2.0.0-3-testnet(Jan 26, 2022)

    Incompatible Changes

    • Introduce a new space that is fully EVM compatible. (CIP-90:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-90.md)
    • Enable Blake2F builtin function. (CIP-92: https://github.com/Conflux-Chain/CIPs/pull/92)
      • CIP-90 and CIP-92 will be enabled on Conflux Testnet at epoch number 61465000 and block number 77340000.

    Configuration Changes

    • Add configuration jsonrpc_http_eth_port and jsonrpc_ws_eth_port to set eth-space RPC endpoint ports.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.0-3-testnet-compatible.zip(20.77 MB)
    conflux_linux_v2.0.0-3-testnet.zip(20.76 MB)
    conflux_mac_v2.0.0-3-testnet.zip(16.77 MB)
    conflux_win10_x64_v2.0.0-3-testnet-compatible.zip(25.95 MB)
    conflux_win10_x64_v2.0.0-3-testnet.zip(25.96 MB)
  • v2.0.0-2-testnet(Jan 20, 2022)

    Incompatible Changes

    • RPC Changes

      • Refactor the design and implementation of transaction trace. trace RPCs will be affected. Check https://github.com/Conflux-Chain/CIPs/issues/88 for details. (#2286, #2292)
    • Configuration Changes

      • Remove default dev mode ports. The users should configure open ports if they want to access RPCs. (#2328)

    Improvements

    • Implement transaction pool garbage collection based on strict priorities (including transaction readiness, gas price, e.t.c.). (#2287, #2291)
    • Sample a subset of transactions with higher gas prices for packing. This reduces the packing time for high-price transactions. (#2312)
    • Reject invalid receipient in txpool. (#2289)

    Bug fixes

    • Fix an issue that may cause the transaction pool to stop garbage collecting and always remains full. (#2357)
    • Fix an issue that if the node is serving multiple state-related RPCs concurrently, some states may fail to be opened. (#2293)
    • Fix a possible OOM issue during node restarting. (#2267)
    • Fix blocked catching up issues of a heavy fork subtree. (#2280)
    Source code(tar.gz)
    Source code(zip)
    conflux_mac_v2.0.0-2-testnet.zip(16.75 MB)
  • v2.0.0-testnet(Dec 6, 2021)

    To node operators and miners:

    Please upgrade your node before Epoch Number reaches 55095000 or Block Number reaches 68845000 (around 10:00 Dec.9th, 2021(GMT+8)).

    Please add pos_config (will be updated here after Dec.11 at 18:00) before Epoch Number reaches 55665000 (around Dec.13th 15:00).

    If the binary cannot start, you can choose to compile the binary on your own platform or use the compatible version. Note that the compatible version has poorer performance and requires better hardware to run stably(>4 cores).

    Incompatible Changes

    • CIP-43:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-43.md
    • CIP-64:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-64.md
    • CIP-71:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-71.md
    • CIP-72:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-72.md
    • CIP-76:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-76.md
    • CIP-78:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-78.md
    • CIP-86:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-86.md

    RPC Improvements

    PoS RPC

    Added a new group of PoS-related methods with a prefix of pos. Current information about the PoS chain can be acquired using these methods.

    PoW RPC

    Hardfork PoW RPC Changes

    • Added a new field in the block structure:
      • posBlockHash: the hash of the PoS latest block at the time when the PoW block is mined

    New Tag

    • Added a new epochNumber tag:
      • latestFinalized:the latest finalized block

    New RPC

    • Added a new RPC method to view the current overall economics information of PoS:
      • cfx_posEconomics
    • txpool-related RPC
      • Added a new group of txpool-related RPC methods with a prefix of txpool which can be used to view various kinds of information regarding the current transaction pool.

    Bug Fixes

    Fixed a bug that may slow down the syncing process for archive nodes.

    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v2.0.0-testnet-compatible.zip(20.45 MB)
    conflux_linux_v2.0.0-testnet.zip(20.45 MB)
    conflux_mac_v2.0.0-testnet.zip(17.48 MB)
    conflux_win10_x64_v2.0.0-testnet-compatible.zip(25.66 MB)
    conflux_win10_x64_v2.0.0-testnet.zip(25.66 MB)
    pos_config-v2.0.0-testnet.tgz(3.31 KB)
  • v1.1.7(Nov 30, 2021)

    Improvements

    • Optimize the transaction pool to avoid rejecting high gas price transactions.
    • Change cfx_getStorageAt's second parameter type from H256 to U256.
    • Add a RPC cfx_openedMethodGroups to return opened RPC groups.
    • Optimize cfx_gasPrice logic.
    • Optimize transaction execution performance by avoiding unnecessary data copy.

    Bug Fixes

    • Fix missing log issue when doing log filtering with block ranges.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v1.1.7.zip(14.76 MB)
    conflux_mac_v1.1.7.zip(13.06 MB)
    conflux_win10_x64_v1.1.7.zip(21.78 MB)
  • v1.1.6-fix2(Nov 17, 2021)

  • v1.1.6-testnet(Nov 15, 2021)

    Improvements

    • Optimize transaction pool to avoid replacing a transaction with a lower gas-price one after garbage collection.
    • Improve transaction execution performance when a non-existent account is accessed.
    • Improve txpool garbage collection behavior.
    • Add txpool RPC group for querying transaction-pool-related information.
    • Enable block number index by default.

    Bug fixes

    • Fix an issue that may cause the node to stop receiving network messages.
    • Fix an issue that may prevent archive nodes to sync (#2249).
    • Fix an issue that an archive may crash after several quick restarts (#2244).
    • Fix duplicate log result for duplicate blockhash parameter (#2238).
    • Fix an issue that block number index may be incorrect after pivot switch (#2236).
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v1.1.6-testnet.zip(14.99 MB)
    conflux_mac_v1.1.6-testnet.zip(13.33 MB)
    conflux_win10_x64_v1.1.6-testnet.zip(22.15 MB)
  • v1.1.6-fix(Nov 8, 2021)

  • v1.1.6(Nov 7, 2021)

    Improvements

    • Improve transaction execution performance when a non-existent account is accessed.
    • Improve txpool garbage collection behavior.
    • Add txpool RPC group for querying transaction-pool-related information.
    • Enable block number index by default.

    Bug fixes

    • Fix an issue that may prevent archive nodes to sync (#2249).
    • Fix an issue that an archive may crash after several quick restarts (#2244).
    • Fix duplicate log result for duplicate blockhash parameter (#2238).
    • Fix an issue that block number index may be incorrect after pivot switch (#2236).
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v1.1.6.zip(14.99 MB)
    conflux_mac_v1.1.6.zip(13.34 MB)
    conflux_win10_x64_v1.1.6.zip(22.16 MB)
  • v1.1.5(Jul 27, 2021)

    Improvements

    RPC Improvements

    • Fix incorrect responses of cfx_getBlockRewardInfo. If the node needs to serve this RPC, it needs to clear all data and resync the chain.
    • Simplify EVM revert reason in RPC responses. This may cause incompatible issues if the user was decoding the error messages manually.
    • Add new RPC cfx_getBlockByBlockNumber.
    • Add blockNumber to the returned JSON object in cfx_getBlockByHash, cfx_getBlockByEpochNumber, and cfx_getBlockByHashWithPivotAssumption.
    • Accept pivot hash in cfx_getEpochReceipts.
    • Raise error in cfx_getBlockByHashWithPivotAssumption if the provided block hash does not belong to the provided epoch.
    • Fix returnData format of CallResult.
    • Fix incorrect firstTxStatus response of cfx_getAccountPendingTransactions if start_nonce is provided.
    • Update cfx_getCode so that it returns an empty hex 0x if the account does not exist instead of raising an error.

    Configuration Improvement

    • Add persist_block_number_index to persist block number indices. It allows responding to block-number-related RPC requests for old epochs.
    • Add storage_max_open_mpt_count to configure maximal number of opened MPT.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v1.1.5.zip(14.94 MB)
    conflux_mac_v1.1.5.zip(13.21 MB)
    conflux_win10_x64_v1.1.5.zip(20.69 MB)
  • v1.1.5-testnet(Jul 27, 2021)

    Improvements

    RPC Improvements

    • Fix incorrect responses of cfx_getBlockRewardInfo. If the node needs to serve this RPC, it needs to clear all data and resync the chain.
    • Simplify EVM revert reason in RPC responses. This may cause incompatible issues if the user was decoding the error messages manually.
    • Add new RPC cfx_getBlockByBlockNumber.
    • Add blockNumber to the returned JSON object in cfx_getBlockByHash, cfx_getBlockByEpochNumber, and cfx_getBlockByHashWithPivotAssumption.
    • Accept pivot hash in cfx_getEpochReceipts.
    • Raise error in cfx_getBlockByHashWithPivotAssumption if the provided block hash does not belong to the provided epoch.
    • Fix returnData format of CallResult.
    • Fix incorrect firstTxStatus response of cfx_getAccountPendingTransactions if start_nonce is provided.
    • Update cfx_getCode so that it returns an empty hex 0x if the account does not exist instead of raising an error.

    Configuration Improvement

    • Add persist_block_number_index to persist block number indices. It allows responding to block-number-related RPC requests for old epochs.
    • Add storage_max_open_mpt_count to configure maximal number of opened MPT.
    Source code(tar.gz)
    Source code(zip)
    conflux_linux_v1.1.5-testnet.zip(14.93 MB)
    conflux_mac_v1.1.5-testnet.zip(13.21 MB)
    conflux_win10_x64_v1.1.5-testnet.zip(20.68 MB)
Owner
Conflux
Conflux is the next generation scalable, secure and extensible blockchain for worldwide DAPPs.
Conflux
Rust implementation of Zcash protocol

The Parity Zcash client. Gitter Blog: Parity teams up with Zcash Foundation for Parity Zcash client Installing from source Installing the snap Running

Parity Technologies 183 Sep 8, 2022
A prototype implementation of the Host Identity Protocol v2 for bare-metal systems, written in pure-rust.

Host Identity Protocol for bare-metal systems, using Rust I've been evaluating TLS replacements in constrained environments for a while now. Embedded

null 31 Dec 12, 2022
A Rust implementation of the Message Layer Security group messaging protocol

Molasses An extremely early implementation of the Message Layer Security group messaging protocol. This repo is based on draft 4 of the MLS protocol s

Trail of Bits 109 Dec 13, 2022
Ecoball Node is the Official Rust implementation of the Ecoball protocol.

Ecoball Node is the Official Rust implementation of the Ecoball protocol. It is a fork of OpenEthereum - https://github.com/openethereum/

Ecoball Chain 2 Jun 9, 2022
A rust implementation of the ABCI protocol for tendermint core

?? DEPRECATED ?? This repo has been deprecated. Development work continues as the "abci" crate of informalsystems/tendermint-rs. Please reference that

Tendermint 117 Dec 12, 2022
Open source Rust implementation of the Witnet decentralized oracle protocol, including full node and wallet backend 👁️🦀

witnet-rust is an open source implementation of the Witnet Decentralized Oracle Network protocol written in Rust. Components witnet-rust implements ma

The Witnet Project 155 Nov 21, 2022
In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol

In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol

陈年旧事。 73 Jan 1, 2023
Next-generation implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture.

?? Martinez ?? Next-generation implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture. Why run Martinez? Look at

Arthur·Thomas 23 Jul 3, 2022
Prost is a Protocol Buffers implementation for the Rust Language.

PROST! prost is a Protocol Buffers implementation for the Rust Language. prost generates simple, idiomatic Rust code from proto2 and proto3 files. Com

Tokio 2.5k Jan 8, 2023
Rust implementation of the Inter-Blockchain Communication (IBC) protocol.

ibc-rs Rust implementation of the Inter-Blockchain Communication (IBC) protocol. This project hosts the ibc rust crate which defines the main data str

COSMOS 37 Dec 26, 2022
Pure Rust implementation of components of the Secure Shell (SSH) protocol

RustCrypto: SSH Pure Rust implementation of components of the Secure Shell (SSH) protocol. Crates Name crates.io Docs Description ssh—encoding Decoder

Rust Crypto 27 Dec 27, 2022
Rust implementation of the Matter protocol. Status: Experimental

matter-rs: The Rust Implementation of Matter Build Building the library: $ cd matter $ cargo build Building the example: $ cd matter $ RUST_LOG="matt

Connectivity Standards Alliance 12 Jan 5, 2023
An implementation of the SuperNova protocol, written in Rust

SuperNova Warning: this implementation is experimental and not audited. Please use at your own risk. This repository contains an implementation of the

null 11 Jan 26, 2023
Rust implementation of the negentropy set-reconcilliation protocol.

Negentropy Description Implementation of the negentropy set-reconciliation protocol. Project structure The project is split up into many crates: negen

Yuki Kishimoto 3 Sep 11, 2023
Flexible Rust implementation of the MuSig2 multisignature protocol, compatible with Bitcoin.

MuSig2 This crate provides a flexible rust implementation of MuSig2, an optimized digital signature aggregation protocol, on the secp256k1 elliptic cu

null 4 Oct 31, 2023
Minimal implementation of the Mimblewimble protocol.

Grin Grin is an in-progress implementation of the Mimblewimble protocol. Many characteristics are still undefined but the following constitutes a firs

null 5k Dec 28, 2022
An implementation of the OPAQUE password-authenticated key exchange protocol

The OPAQUE key exchange protocol OPAQUE is an asymmetric password-authenticated key exchange protocol. It allows a client to authenticate to a server

Novi 178 Jan 9, 2023
A safe implementation of the secure remote password authentication and key-exchange protocol (SRP), SRP6a and legacy are as features available.

Secure Remote Password (SRP 6 / 6a) A safe implementation of the secure remote password authentication and key-exchange protocol (SRP version 6a). Ver

Sven Assmann 10 Nov 3, 2022
Webb Protocol implementation in Ink!

Webb Protocol Ink! ??️ Webb Protocol Ink! ⧫ ⚠️ Beta Software ⚠️ Dependencies A prerequisite for compiling smart contracts is to have Rust and Cargo in

webb 4 Aug 5, 2022