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 次下载

Apache-2.0

58KB
1.5K SLoC

Silk crate Silk documentation Build Status codecov

免责声明

本项目中的所有声明、内容、设计、算法、估计、路线图、规范和性能测量均由作者尽力完成。读者需自行核实其准确性和真实性。此外,本项目中的任何内容均不构成投资邀请。

丝绸,对 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