Skip to content
No description, website, or topics provided.
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo remove autotest, export new object Nov 16, 2018
doc fix bug, remove heapdump, update doc Nov 15, 2018
src remove autotest, export new object Nov 16, 2018
test
.eslintrc
.gitignore first commit blockchain-sdk Sep 26, 2018
LICENSE first commit blockchain-sdk Sep 26, 2018
README.md Update README.md Sep 26, 2018
gulpfile.js pre pr version Nov 14, 2018
package.json fix bug, remove heapdump, update doc Nov 15, 2018
tsconfig.json first commit blockchain-sdk Sep 26, 2018
tslint.json first commit blockchain-sdk Sep 26, 2018

README.md

以npm包引入此项目

运行npm install blockchain-sdk安装,在项目中使用import {} from 'blockchain-sdk'

node版本

本项目正常运行需要nodejs 8 LTS版本,且版本号 >= 8.9

开发环境

目前开发团队主要在windows + VSCode环境下开发,暂只提供bat脚本;其他平台脚本会在以后版本陆续添加

项目编译

  1. 在根目录下执行命令npm install安装依赖包,因有模块需要编译,各系统需要安装C++编译器
  2. 在根目录下执行命令npm run build编译.ts文件并拷贝对应配置文件到指定目录
  3. 执行npm run test调用mocha运行自动化单元测试

项目运行

1)首次运行前,需要构造创世块。在根目录运行./demo/dpos/create.bat生成创世块到data/dpos/genesis目录下。

2)链的共识参数在demo/dpos/chain/config.json中,其中 min和max就是miner数量限制, reSlectionblocks就是N, blockInterval就是出块时间间隔 timeOffsetToLastBlock就是该miner距离自己上次出块得时间超过这个值就将被禁用, timeBan就是禁用时间, unbanBlocks就是每隔多少个块进行一次解禁计算 dposVoteXX就是投票时最多投的候选者 maxBlockIntervalOffset再计算时间槽的时候的偏移。

3)创世块包含内容在demo/dpos/chain/genesis.json中。更改config.json或genesis.json后,需要重新执行npm run build,再构造创世块

4)在创世块构造完成后,在根目录运行./demo/dpos/chain/miner.bat运行第一个miner,dpos首轮需要的miner列表写在genesis.json中, 与dbft不同,dpos的出块者需要通过一个下注和投票过程来完全重新指定,而不能动态添加和删除。

5)所有bat脚本都可以通过传入--forceClean参数来清除本地数据。create.bat传入--forceClean参数后,会删除之前创建的创世块,重新创建。 miner.bat传入--forceClean后,会删除本地已同步的块内容,用创世块数据重新加入网络,拉取全部数据

网络构造

当前所有结点会通过bdt的snServer做最初的节点发现。连接到同一个snServer的节点视为在同一网络中,可以相互发现。 节点的snServer通过miner.bat的--sn参数指定。当前miner.bat和peer.bat中配置了开发网络的snServer地址

推荐测试网络的节点不要连接到开发网络的snServer,可以自己启动一个snServer来构造测试网络。启动sn节点的说明参见doc/SNPeer.md

demo说明

项目在demo文件夹下带有三个demo,代表不同共识算法的chain的实现:

  1. coin demo: PoW共识chain的实现,有转账,账户查询余额等标准功能
  2. dpos demo:完整的DPoS共识chain的实现,除实现了标准功能及DPoS需要的候选、投票等功能外,还以智能合同的方式实现了发布代币和一个简单的拍卖行demo
  3. dbft demo: dBFT共识chain的实现,实现了标准功能及通过SA密钥签发新dBFT节点的功能,未实现dBFT中的投票功能
You can’t perform that action at this time.