9 个版本
使用旧的 Rust 2015
0.3.3 | 2018年3月9日 |
---|---|
0.3.2 | 2018年3月8日 |
0.2.3 | 2018年2月24日 |
0.1.3 | 2018年2月16日 |
#3 在 #loom 中
每月 31 次下载
58KB
1.5K SLoC
免责声明
本项目中的所有声明、内容、设计、算法、估计、路线图、规范和性能测量均由作者尽力完成。读者需自行核实其准确性和真实性。此外,本项目中的任何内容均不构成投资邀请。
丝绸,对 Loom 规范的丝绸般平滑实现
Loom™ 是一种高性能区块链的新架构。其白皮书声称在 1 gbps 网络上的理论吞吐量为每秒 710k 笔交易。规范在两个 Git 仓库中实现。研究在 loom 仓库中进行。该工作推动 Loom 规范的发展。另一方面,这个仓库旨在原样实现规范。我们非常关注质量、清晰度和学习曲线的简短。我们避免使用 unsafe
Rust,并为 一切 编写测试。只有在添加了证明真实性能提升的基准测试后,才会添加优化。我们预计这里的特性集将始终落后于 loom 仓库,但这是一个你可以“名副其实”带走的实现。
运行演示
首先,安装 Rust 的包管理器 Cargo。
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
安装 silk 可执行文件
$ cargo install silk
testnode 服务器使用从 stdin 的交易日志初始化,并在 stdout 上生成新的日志条目。要创建输入日志,我们需要创建 铸造厂 并使用它来生成 创世日志。这是分两步完成的,因为 mint.json 文件包含将在本演示的后续部分使用的私钥。
$ echo 500 | silk-mint > mint.json
$ cat mint.json | silk-genesis > genesis.log
现在你可以启动服务器
$ cat genesis.log | silk-testnode > transactions0.log
然后,在另一个壳中,让我们执行一些交易。注意我们在这里传递的是 JSON 配置文件,而不是创世日志。
$ cat mint.json | silk-client-demo
现在用 Ctrl-C 杀死服务器,查看交易日志。你应该会看到类似以下的内容
{"num_hashes":27,"id":[0, "..."],"event":"Tick"}
{"num_hashes":3,"id":[67, "..."],"event":{"Transaction":{"asset":42}}}
{"num_hashes":27,"id":[0, "..."],"event":"Tick"}
现在从我们停止的地方重新启动服务器。传递创世日志和交易日志。
$ cat genesis.log transactions0.log | silk-testnode > transactions1.log
最后,再次运行客户端演示程序,并验证上一轮中所有资金都已支出,因此没有添加额外的交易。
$ cat mint.json | silk-client-demo
再次停止服务器,并验证只有Tick条目,没有Transaction条目。
开发中
构建中
安装rustc、cargo和rustfmt
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
$ rustup component add rustfmt-preview
下载源代码
$ git clone https://github.com/loomprotocol/silk.git
$ cd silk
测试中
运行测试套件
cargo test
基准测试
首先安装rustc的nightly版本。 cargo bench
需要不稳定的功能
$ rustup install nightly
运行基准测试
$ cargo +nightly bench --features="asm,unstable"
依赖项
~9–18MB
~331K SLoC