比特股环境搭建

作者: 剑有偏锋 | 来源:发表于2017-09-19 16:42 被阅读1977次

一 编译

编译环境推荐为ubuntu 16.04  64位版(如果是windows,可以在https://github.com/bitshares/bitshares-core/releases中,下载编译好的BitShares-Core-2.0.170710-x64-cli-tools.zip

1 安装编译相关库

sudo apt-get update

sudo apt-get install autoconf cmake git libboost-all-dev libssl-dev

2下载 源码 (2017.9.19 最新版本为 2.0.170710)

git clone https://github.com/bitshares/bitshares-core

cd bitshares-core

git checkout 2.0.170710

git submodule update --init --recursive

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .

make -j4  

###make -jN 多进程并行编译,后面跟一数字N代表开启进程数量(默认约定为cpu核心数)

###make witness_node cli_wallet   只编译见证节点和钱包节点

二 程序结构介绍

witness_node 通过 P2P 方式连接到 BTS 网络,从网络接收最新区块,向网络广播本地签署的交易包;

witness_node 通过 websocket + http rpc 的方式提供 API 供其他程序调用(以下称为节点 API)。

delayed_node 通过 websocket 方式连接到 witness_node ,只包含不可回退的区块;

delayed_node 通常情况下最新区块比 witness_node 落后一分钟,异常时可能会落后很多,但可保证不可回退。

delayed_node 通过 websocket + http rpc 的方式提供 API 供其他程序调用,API清单与 witness_node 相同,但无法使用交易广播功能。

cli_wallet 通过 websocket 方式连接到 witness_node 和 delayed_node 其中之一。

可以同时运行两个 cli_wallet 进程,分别连到 witness_node 和 delayed_node 。

cli_wallet 管理钱包文件,钱包文件里包含经过加密的用户私钥,一个钱包文件可以包含多个私钥。

cli_wallet 提供交易签名功能,签名后通过 witness_node 向外广播。

cli_wallet 通过 http rpc 的方式提供 API 供其他程序调用(以下称为钱包 API)。

推荐交易所使用一个连接到 delayed_node 的 cli_wallet 来监测用户充值,使用另一个连接到 witness_node 的 cli_wallet 来处理用户提现请求。

三 私有链单机部署步骤

1 生成创世纪块的json

./witness_node --create-genesis-json "genesis.json"

2 启动见证人节点

./witness_node --rpc-endpoint "127.0.0.1:8090" --enable-stale-production -d test_net --seed-nodes "[]" --genesis-json "genesis.json"  

# --rpc-endpoint rpc监听端口

# --enable-stale-production 让本节点无视区块链数据的时间,无论如何都生成区块数据

# -w (--witness-id) 本节点控制的witness列表,(1.6.0-9)是默认的withness

# --seed-nodes 要连接的peer列表(测试环境务必传此参数,不传的话会走代码里hardcode的正式网的peer列表,会导致测试节点去跟正式网络同步数据)

(没有种子节点,一般用户等一年也不一定能连上网络。见证人对网络连接的要求更高,所以,必须与完整数据的种子节点相连,否则数据不完整的钱包会制造分叉。)

# --genesis-json 比特股网络启动的数据文件

3 启动钱包

./cli_wallet  --chain-id="97f304dce6fe30cccbdef37cd7899d349297a78ba483375adc3982016ef40c63" -s ws://127.0.0.1:8090  -w  wallet.json

# -s 或 --server-rpc-endpoint witness_node的地址和端口

# --chain-id 指的是服务的chain-id,可以不带此参数执行一次命令,程序的报错信息会显示这个id

4 使用命令行钱包,执行新建用户,转账,申请见证人等操作,只做简单使用介绍。

new>>>set_password my_password

#解锁钱包

locked>>>unlock my_password

#导入用户

unlocked >>> import_key"nathan"5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

#导入余额

unlocked >>>import_balance nathan [5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3] true

#查看账户信息

unlocked >>>list_my_accounts

#查看账户余额

locked >>> list_account_balances nathan

#升级会员  (PS:可能是因为命令行钱包的bug,升级账号后必须退出程序再次进入才能使升级的状态生效)。

locked >>>upgrade_account nathan true

5 后面可以整合安装bitshares-ui,浏览器版钱包,用于交易等操作。可看截图(https://bitshares.org/wallet/),源码(https://github.com/bitshares/bitshares-ui)。

四 遇到的问题,编译内存不足。分配交换空间

gcc 编译出现 internal compiler error: Killed

增加一个交换分区:

1. 创建分区文件, 大小 10G(读者可按需分配)

ddif=/dev/zero of=/swapfile bs=1kcount=10240000

2. 生成 swap 文件系统

mkswap/swapfile

3. 激活 swap 文件

swapon/swapfile

这样就木有问题了, 但是这样并不能在系统重启的时候自动挂载交换分区, 这样我们就需要修改 fstab.

修改 /etc/fstab 文件, 新增如下内容:

/swapfile swap swap defaults00

这样每次重启系统的时候就会自动加载 swap 文件了.

五 附录

搭建私有网络说明                                         http://docs.bitshares.org/testnet/private-testnet.html

BitShares 交易所对接指南20170614版    https://steemit.com/bitshares/@abit/bitshares

相关文章

  • Bitshares 私链部署witness节点

    前言 单节点私链搭建请参考 剑有偏峰 的文章:比特股环境搭建编译比特股网页钱包搭建比特股的水龙头注册服务 本文同时...

  • 比特股环境搭建

    一 编译 编译环境推荐为ubuntu 16.04 64位版(如果是windows,可以在https://githu...

  • 比特股私有链环境搭建

    比特股私有链环境搭建 官方推荐使用ubuntu16.04版本,参考官方wiki:https://github.co...

  • 比特股搭建多节点私链+水龙头+网页钱包总结

    ##比特股搭建私链(多节点)+钱包+网页钱包+水龙头## [官方文档](http://docs.bitshares...

  • 搭建比特币环境 Java调用RPC

    BTC环境搭建 1.准备服务器 (推荐linux centos环境 windows不稳定)最近在准备一个比特币钱包...

  • 比特币入门

    这篇笔记主要讨论一下一些话题 比特币密钥地址相关概念 比特币环境搭建 Transaction&Scrip 数字签名...

  • 量化选股--app内测

    每周推出一篇,关于量化选股app及其后台设计的文章 目录基本如下: 1,量化选股--环境搭建 2,量化选股--tu...

  • mac搭建比特币开发环境

    0 曾尝试源码自行编译,无奈各种error,官网有已经编译好的; 下载地址 1 下载后解压即可,bin文件下面有我...

  • bitshares-ui 比特股开源交易所简介

    1、比特股是什么? 比特股是一个全球去中心化虚拟货币交易所,全世界任何国家比特股用户都可以在比特股钱包进行虚拟货币...

  • 比特股 /bts 偷菜游戏btsfarm注册教程

    bts大佬巨蟹推荐。比特农场,一款开发基于比特股区块链的偷菜游戏,旨在唤醒更多的人珍惜资源,保护环境。游戏界面: ...

网友评论

  • d2905eccfc64:git clone https://github.com/bitshares/bitshares-core

    cd bitshares-core

    git checkout 2.0.170710

    现在最新版本是啥 ?在哪里看呢?我正在服务器上按你的教程操作,不会在哪里看这个版本号。
    剑有偏锋:@鲤鱼喝茶 github里的release标签下,看当前的releas版本号。git tag可列出所有标签下的版本
  • LeonRun:有尝试过bitshares-ui介入到自己搭建的私有链上吗?
    请教两个问题:
    1.发行货币总量是如何控制的?
    2.一般像比特股发行ico,当上线的时候是相当于发行方已经用比特股挖掘了对应的货币量了吗,然后转给对应的购买者的吗?
    3.BM曾经针对btshares增发了一次,增发是如何控制的呢?
    目前还没有深入了解源码,这些关节还没想通,望指教。
    剑有偏锋:@LeonRun 比特股有创世状态文件genesis json
    1 可以指定某个账号,初始的比特股数额.属性名 initial_balances
    2 可以指定比特股的最大供给量,属性名max_core_supply
    LeonRun:@剑有偏锋 这个关节我是理解的,可能我没把问题说明清楚:比如bts以太坊通过智能合约发行token进行ICO的时候,在主链上应该还没有对应的比特股吧,比特股说自己会发行比如30亿股,这初始的30亿股是怎么产生的呢?比如搭建一个私有链肯定要先把一部分股份生产出来的,这个总量在比特股链上如何控制的呢?
    剑有偏锋:@LeonRun 回答
    1 bitshares-ui可以发行uia,可控制发行总量
    2 ico在bitshares-ui叫发行uia(用户发行资产),发行之后可马上上比特股交易所,购买者可在在比特股交易所,按发行价格购买.
    3增发还未研究过原理
  • 娇羞娃:可以新建用户,nathan转给新用户,但是新用户不能转给nathan,已经import_key了,求教你有没有成功
    剑有偏锋:@娇羞娃 发送方joshua的私钥你导入钱包了吗?
    th_a wallet.cpp:665 get_private_key=>
    fc::ecc::private_key get_private_key(const public_key_type& id)const
    {
    auto it = _keys.find(id);
    FC_ASSERT( it != _keys.end() );
    娇羞娃:@剑有偏锋 10 assert_exception: Assert Exception
    it != _keys.end():
    {}
    th_a wallet.cpp:665 get_private_key

    {"from":"joshua","to":"nathan","amount":"1000","asset_symbol":"BTS","memo":"AA","broadcast":true}
    th_a wallet.cpp:2028 transfer
    剑有偏锋:@娇羞娃 这个试过可以
  • TradingView沙悟净:希望可以认识你,我的微信15920082093,本人对比特股很有兴趣,希望可以多向你学习
    剑有偏锋:@刘小东_2171 描述问题和日志即可
  • klim:很好的教程,谢谢分享

本文标题:比特股环境搭建

本文链接:https://www.haomeiwen.com/subject/kcqwsxtx.html