#definition #connector #rosetta #shared #chain #traits #client-server

rosetta-core

提供服务器和客户端crate共享的特性和定义

4个版本 (破坏性更新)

0.4.0 2023年6月29日
0.3.0 2023年6月29日
0.2.5 2023年5月1日
0.1.0 2023年3月30日

#6#rosetta

Download history 41/week @ 2024-05-03 49/week @ 2024-05-10 41/week @ 2024-05-17 49/week @ 2024-05-24 37/week @ 2024-05-31 24/week @ 2024-06-07 43/week @ 2024-06-14 46/week @ 2024-06-21 21/week @ 2024-06-28 15/week @ 2024-07-05 41/week @ 2024-07-12 48/week @ 2024-07-19 31/week @ 2024-07-26 33/week @ 2024-08-02 35/week @ 2024-08-09 20/week @ 2024-08-16

每月下载量127
15 个crate中(直接使用9个)

MIT 许可证

200KB
3K SLoC

Rosetta SDK 文档

Rosetta 是一套区块链集成工具,其目标是使区块链集成更加简单、快速和可靠。此仓库为 Analog 的编年史提供框架 —— 由时间节点运营商托管的特殊节点 —— 以符合 Analog 网络协议的方式简化它们与 Analog 连接的链的交互。

仓库结构

此仓库包含以下模块

  • rosetta-core. 提供服务器和客户端crate共享的特性和定义。
  • rosetta-server. 这是 Rosetta 服务器的通用实现。Rosetta 服务器是一个独立的服务器,任何 Analog 支持的链上的连接器都可以连接并监听设置中指定的端口。
  • rosetta-client. 这是一个与 Rosetta 服务器交互的标准客户端。
  • rosetta-types. 它包含客户端和服务器使用的请求和响应结构体。它最初使用 openapi-generator 自动生成。
  • rosetta-crypto. 它包含 rosetta-client 使用的加密原语。
  • rosetta-wallet. 这是一个使用 rosetta-client 构建的命令行界面(CLI)。
  • rosetta-cli. 这是一个使用 rosetta-client 构建的 CLI。
  • rosetta-docker. 这是一个通用的 Rosetta 服务器测试基础设施。
  • chains. 这些是特定链的客户端/服务器组件。

入门

要开始使用 Rosetta SDK,请确保您已安装以下依赖项

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install --locked svm-rs
cargo install --locked dprint
cargo install --locked cargo-deny

rustup target add wasm32-unknown-unknown --toolchain stable
rustup target add wasm32-unknown-unknown --toolchain nightly

sudo apt install shellcheck # On Debian
brew install shellcheck # MacOS
pacman -S shellcheck # Arch Linux
sudo yum -y install epel-release && sudo yum -y install ShellCheck # EPEL based distros
# For more options, visit: https://github.com/koalaman/shellcheck?tab=readme-ov-file#installing

# Install solc 0.8.25, if not installed already
[[ $(solc --version | sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,3\}[0-9][^.]\).*/\1/p') != '0.8.25' ]] && svm install 0.8.25 && svm use 0.8.25

构建

$ cargo build -p rosetta-client

代码检查

$ cargo +nightly fmt --all -- --check
$ cargo clippy --locked --workspace --examples --tests --all-features -- \
  -Dwarnings \
  -Dclippy::unwrap_used \
  -Dclippy::expect_used \
  -Dclippy::nursery \
  -Dclippy::pedantic \
  -Aclippy::module_name_repetitions
$ dprint check
$ cargo deny check

运行单元测试

$ cargo test --workspace --all-features \
  --exclude rosetta-testing-arbitrum \
  --exclude rosetta-server-astar \
  --exclude rosetta-server-ethereum \
  --exclude rosetta-server-polkadot \
  --exclude rosetta-client

运行集成测试

# Pull docker images
./scripts/pull_nodes.sh

# Run tests
$ cargo test \
  -p rosetta-server-astar \
  -p rosetta-server-ethereum \
  -p rosetta-server-polkadot \
  -p rosetta-client

运行 Arbitrum 集成测试

# Setup arbitrum local testnet
git clone -b release --depth=1 --no-tags --recurse-submodules https://github.com/ManojJiSharma/nitro-testnode.git
cd nitro-testnode
./test-node.bash --detach
cd ..

# Run tests
cargo test --locked -p rosetta-testing-arbitrum

贡献

您可以通过多种方式为该仓库做出贡献,包括

依赖项

约11MB
约220K SLoC