bitshares开发入门:开源代码总览

首先看bitshares简单部署示意图:

graph bitshares部署示意图 {
node1[shape="box"]
node2[shape="box"]
node3[shape="box"]
node4[shape="box"]
node1 -- node2[constraint=false]
node1 -- node3[constraint=false]
node1 -- node4[constraint=false]
node2 -- node3[constraint=false]
node2 -- node4[constraint=false]
node3 -- node4[constraint=false]
"cli_wallet" -- node1
"web_wallet" -- node2
}

node1到node4是区块链的见证节点,互相连接成网状结构,cli_wallet是命令行客户端,通过websocket + JSON API与任意见证节点相连,web_wallet是网页客户端,通过同一套API与任意见证节点相连。

bitshares核心代码分为以下几个部分:

  • bitshares-core 见证节点和命令行钱包,C++代码,基于石墨烯区块链。
  • bitshares-fc bitshares-core依赖的一个快速编译C++工具库;
  • bitshares-ui 网页钱包,Javascript代码,基于React和Webpack。
  • bitshares-js bitshares-ui依赖的js库,包括两大底层功能,读取区块链数据,使用账号签署交易
  • bitsharesjs-ws bitshares-js依赖的js库,封装了与见证节点进行通信的细节,为bitshares-js提供API。

核心代码依赖关系图如下:

digraph 核心代码依赖关系 {
"bitshares-core" -> "bitshares-fc"
"bitshares-ui" -> "bitshares-js"
"bitshares-js" -> "bitsharesjs-ws"
}

开发代码,时常需要测试,而不希望直接在bitshares主链上操作。如果不是开发见证人节点代码,那么可以利用已有的公开测试网络(测试链)。bitshares的测试链原始记录在 这里 。 其中包含两个链接,一个是测试链的 网页钱包地址,另一是测试链的 相关文档 。从网页端入口可以创建测试账号,升级终身会员,发行资产等等,熟悉bitshares 的各种用户行为而无需花费BTS代币(每个新创建的账号有20000TEST代币)。而要做开发,可以先利用测试链的源代码调试测试,测试好了之后再切回主链操作,避免不必要的支出和损失。