区块链开发必备的9个Rust包

简介: Rust是新一代的潜力巨大的开发语言。本文编辑整理了9个主流的用于以太坊、比特币、tendermint、eosio、polkadot等区块链开发的Rust包,可用于区块链应用的快速开发。

Rust是新一代的潜力巨大的开发语言。本文编辑整理了9个主流的用于以太坊、比特币、tendermint、eosio、polkadot等区块链开发的Rust包,可用于区块链应用的快速开发。

区块链开发教程链接: 以太坊 | 比特币 | EOS | Tendermint | Hyperledger Fabric | Omni/USDT | Ripple

1、rust-bitcoin:比特币区块链rust开发包

rust-bitcoin用于开发比特币区块链相关应用,支持序列化/反序列化、解析并执行比特币相关数据结构及网络消息等功能,具体支持的特性包括:

  • 比特币协议消息的序列化/反序列化
  • 比特币区块和交易的序列化/反序列化
  • 比特币脚本的序列化/反序列化
  • 私钥和地址的创建、序列化/反序列化和验证,内置BIP32的完整支持
  • PSBT的创建、操作、合并与最终化
  • 支持Blockstream侧链的Pay-to-contract交易

项目地址:https://github.com/rust-bitcoin/rust-bitcoin

2、rust-bitcoincore-rpc:比特币节点JSON-RPC API客户端开发包

rust-bitcoin不包含比特币节点的JSON RPC API封装,rust-bitcoincore-rpc填补了这个空白。例如:

let rpc = Client::new(url, Auth::UserPass(user, pass)).unwrap();

let _blockchain_info = rpc.get_blockchain_info()?;

let best_block_hash = rpc.get_best_block_hash()?;
println!("best block hash: {}", best_block_hash);
let bestblockcount = rpc.get_block_count()?;
println!("best block height: {}", bestblockcount);
let best_block_hash_by_height = rpc.get_block_hash(bestblockcount)?;
println!("best block hash by height: {}", best_block_hash_by_height);
assert_eq!(best_block_hash_by_height, best_block_hash);

let bitcoin_block: bitcoin::Block = rpc.get_by_id(&best_block_hash)?;
println!("best block hash by `get`: {}", bitcoin_block.header.prev_blockhash);
let bitcoin_tx: bitcoin::Transaction = rpc.get_by_id(&bitcoin_block.txdata[0].txid())?;
println!("tx by `get`: {}", bitcoin_tx.txid());

项目地址:https://github.com/rust-bitcoin/rust-bitcoincore-rpc/tree/master/client

3、rust-web3:以太坊区块链rust开发包

rust-web3是以太坊web3.js开发包的rust版本的实现,具体特性包括:

  • 支持合约调用、ABI编码
  • 支持批量请求
  • 支持HTTP/IPC/WebSocket传输
  • 支持众多标准或非标数据类型,例如:

    • U256,H256,Address(H160)
    • Parity的Transaction、TransactionReceipt 、RichBlock、Work、SyncStats
  • 支持大部分标准以太坊RPC API

    • Eth:eth_*:支持
    • Eth Filters:eth_*:支持
    • Eth Pubsub:eth_*:支持
    • net_*:支持
    • web3_*:支持
    • personal_*:支持
    • traces_*:暂不支持
  • 支持Parity扩展RPC API:

    • 只读api:parity_*:支持
    • 账户api:parity_*:部分支持
    • 集合api:parity_*:支持
    • signer_*:支持
    • 自定义API:支持

项目地址:https://github.com/tomusdrw/rust-web3/

4、ethereum-tx-sign:以太坊离线签名rust开发包

ethereum-tx-sign支持你在Rust代码中脱机签名以太坊交易。例如:

// 1 mainnet, 3 ropsten
const ETH_CHAIN_ID: u32 = 3;

let tx = ethereum_tx_sign::RawTransaction {
    nonce: web3::types::U256::from(0),
    to: Some(web3::types::H160::zero()),
    value: web3::types::U256::zero(),
    gas_price: web3::types::U256::from(10000),
    gas: web3::types::U256::from(21240),
    data: hex::decode(
        "7f7465737432000000000000000000000000000000000000000000000000000000600057"
    ).unwrap(),
};

let mut data: [u8; 32] = Default::default();
data.copy_from_slice(&hex::decode(
    "2a3526dd05ad2ebba87673f711ef8c336115254ef8fcd38c4d8166db9a8120e4"
).unwrap());
let private_key = web3::types::H256(data);
let raw_rlp_bytes = tx.sign(&private_key, &ETH_CHAIN_ID);

let result = "f885808227108252f894000000000000000000000000000000000000000080a\
    47f746573743200000000000000000000000000000000000000000000000000\
    00006000572aa0b4e0309bc4953b1ca0c7eb7c0d15cc812eb4417cbd759aa09\
    3d38cb72851a14ca036e4ee3f3dbb25d6f7b8bd4dac0b4b5c717708d20ae6ff\
    08b6f71cbf0b9ad2f4";
assert_eq!(result, hex::encode(raw_rlp_bytes));

项目地址:https://github.com/synlestidae/ethereum-tx-sign

5、SputnikVM:纯rust实现的以太坊虚拟机

SputnikVM是完全采用rust实现的以太坊虚拟机,主要特性包括:

  • 独立:可以作为单独进程载入或集成进现有APP
  • 通用:支持不同的以太坊区块链,例如ETC、ETH或私有链
  • 无状态:只包含一个连接到独立的状态存储的执行环境
  • 快速:实现的关注重点就是性能

SputnikVM要求 rustc 1.33.0 (2aa4c46cf 2019-02-28),不支持 Rust 1.32.0以及更早版本。

项目地址:https://github.com/rust-blockchain/evm

6、tendermint-rs:tendermint区块链rust开发包

Tendermint是一个高性能的支持拜占庭容错的区块链共识引擎,tendermint-rs用于访问Tendermint区块链,要求Rust 1.39+。

项目地址:https://github.com/informalsystems/tendermint-rs/tree/master/tendermint

7、monero-rs:Monero区块链rust开发包

monero-rs用于访问Monero区块链,支持门罗币相关的序列化/反序列化以及数据结构或网络消息的解析。具体特性包括:

  • 支持Monero区块及交易的序列化/反序列化
  • 支持地址和子地址的创建、序列化/反序列化和验证
  • 支持私钥和一次性密钥的创建、序列化/反序列化和验证
  • 大部分结构都支持Serde

项目地址:https://github.com/monero-rs/monero-rs

8、eosio-rust:EOSIO区块链rust开发包

eosio-rust是Rust版本的EOSIO SDK,它提供一组API用于采用Rust开发EOSIO区块链上的智能合约与全栈应用。

项目地址:https://github.com/sagan-software/eosio-rust

9、substrate:大杀器

Parity出品,支持区块链创新的下一代开发框架,已经用于Polkadot的开发,是中小企业开发自主知识产权的的区块链平台的一大利器。

项目地址:https://github.com/paritytech/substrate


原文链接:9个主流的Rust区块链开发包 — 汇智网

目录
相关文章
|
3月前
|
物联网 区块链 vr&ar
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
|
1月前
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
68 7
|
21天前
|
存储 开发框架 安全
揭秘区块链:以太坊智能合约开发的奥秘与挑战,你准备好迎接未来了吗?
【10月更文挑战第25天】本文介绍了区块链技术的基本概念及其核心特点,重点讲解了以太坊智能合约的开发流程和实际开发中的注意事项。通过安装 Truffle、Ganache 和 Remix 等工具,读者可以快速上手编写、编译、部署和测试智能合约。文章还对比了以太坊去中心化应用与传统集中式应用的优势和挑战,帮助读者全面了解以太坊智能合约开发。
28 0
|
3月前
|
存储 Rust 编译器
30天拿下Rust之箱、包和模块
Rust语言使用模块系统来组织工程和代码。模块系统允许我们将相关的函数、类型、常量等组织在一起,形成一个逻辑上的单元。通过模块系统,我们可以隐藏实现细节,只暴露必要的接口,从而提高代码的可读性和可维护性。Rust的模块系统还支持路径依赖和重导出等功能,使得代码的组织更加灵活和方便。 Rust的模块系统中有三个非常重要的概念,分别是:箱(Crate)、包(Package)和模块(Module),下面逐一进行介绍。
40 1
30天拿下Rust之箱、包和模块
|
6月前
|
供应链 安全 物联网
【专栏】区块链和智能合约的未来发展潜力巨大,期待更多创新应用
【4月更文挑战第27天】本文探讨了区块链技术与智能合约的边界及挑战。区块链,以其不可篡改和安全特性,广泛应用于金融、供应链和物联网等领域。智能合约作为区块链上的自动执行代码,实现无需第三方的可信交易。然而,技术上面临扩展性、性能和安全问题,法律与监管层面也需适应智能合约的自动执行特性及跨境法律协调。尽管挑战重重,区块链和智能合约的未来发展潜力巨大,期待更多创新应用。
157 1
|
2月前
|
供应链 物联网 区块链
|
3月前
|
Rust 开发者
揭秘Rust编程:模块与包的终极对决,谁将主宰代码组织的新秩序?
【8月更文挑战第31天】在软件工程中,模块化设计能显著提升代码的可读性、可维护性和可重用性。Rust 作为现代系统编程语言,其模块和包管理机制为开发者提供了强有力的工具来组织代码。本文通过对比模块和包的概念及使用场景,探讨了 Rust 中的最佳实践。
31 2
|
3月前
|
Rust 安全 JavaScript
探索Rust在系统编程领域的前景:虚拟机和编译器开发的新篇章
【8月更文挑战第31天】在系统编程领域,性能与安全性至关重要。Rust作为一种新兴语言,凭借其独特的内存安全和并发特性,正逐渐成为虚拟机和编译器开发的首选。本文通过案例分析,探讨Rust在这些领域的应用,例如Facebook的Compiler VM (CVM)项目和实验性的JavaScript JIT编译器Mithril。Rust的静态类型系统和所有权模型确保了高性能和安全性,而其强大的包管理和库生态则简化了虚拟机的开发。随着Rust社区的不断成熟,预计未来将有更多基于Rust的创新项目涌现,推动系统编程的发展。对于追求高性能和安全性的开发者而言,掌握Rust将成为一个重要战略方向。
71 1
|
3月前
|
供应链 物联网 分布式数据库
探索区块链技术与智能合约开发的边界
随着信息技术的发展,区块链作为一种分布式数据库技术正深刻影响社会。本文探讨区块链基本原理及其在金融、供应链等领域的应用,并聚焦智能合约——一种自动执行且不可篡改的代码,介绍其开发流程与丰富案例。同时,文章分析了技术与法律层面面临的挑战,展望未来发展趋势。
64 4
|
3月前
|
区块链 C# 存储
链动未来:WPF与区块链的创新融合——从智能合约到去中心化应用,全方位解析开发安全可靠DApp的最佳路径
【8月更文挑战第31天】本文以问答形式详细介绍了区块链技术的特点及其在Windows Presentation Foundation(WPF)中的集成方法。通过示例代码展示了如何选择合适的区块链平台、创建智能合约,并在WPF应用中与其交互,实现安全可靠的消息存储和检索功能。希望这能为WPF开发者提供区块链技术应用的参考与灵感。
62 0