安装bitshares 私链

参考文档

https://www.jianshu.com/p/fe72e564c559

https://github.com/bitshares/bitshares-core/wiki/private-testnet

环境准备

我在这里使用的是 Ubuntu 18.04 LTS
内存 16G

设置防火墙

iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
综合流程
1.构建依赖关系:

sudo apt-get update
sudo apt-get install autoconf cmake make automake libtool git libboost-all-dev libssl-dev g++ libcurl4-openssl-dev
2.构建脚本 生成Makefile,编译,安装:

git clone https://github.com/bitshares/bitshares-core.git
cd bitshares-core
git checkout master # may substitute "master" with current release tag
git submodule update --init --recursive
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .
make
sudo make install

3.检查是否编译安装成功:

cd .. && which witness_node cli_wallet
4.创建测试目录,并切换到该目录:

mkdir -p testnet_home && cd testnet_home/
5.创建和编辑genesis文件:
witness_node --create-genesis-json=my-genesis.json

解释:
石墨烯(graphene)代码中默认的geneis块包含唯一一个账户,geneis块中所有的初始证人,初始委员会成员和初始证人候选人都是该账户,该账户的名称是:nathan,私钥为:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3。
genesis文件是用来定义区块链网络初始状态,可以诸如以下的状态:

    存在于genesis区块的账户,包括账户的名字和公钥
    资产及其初始分配状况(包括核心资产)
    区块链参数的初始值
    初始证人的帐户/签名密钥(或者其他任何帐户,注:默认的 witness 是 init0~inti10)。

在本人的设置中,为了加快活跃证人的更新时间,修改如下:

vim my-genesis.json
"maintenance_interval": 600,

保存并退出。
6.运行如下命令来初始化证人节点:

witness_node --data-dir data/ --genesis-json my-genesis.json --seed-nodes "[]"

当类似以下信息出现时,意味着初始化过程完成,按ctrl+c关闭见证节点:
1620535ms th_a main.cpp:266 main] Started BitShares node on a chain with 0 blocks.
1620535ms th_a main.cpp:267 main] Chain ID is 20e5aa92b1e3b7f971796a3f3fba59ea0a34b1eeb6fb5e585b2e4c9e441015f4

此时,完成了两件事:

创建了区块链data目录和在其之下的config.ini文件。
获得了区块链ID。将Chain ID另外保存起来,后面会用到。

7.配置证人节点
打开data/config.ini文件:
vim data/config.ini

在合适的位置进行以下设置,注意将重复的设置注释掉:
p2p-endpoint = 0.0.0.0:11010
rpc-endpoint = 0.0.0.0:11011
genesis-json = my-genesis.json
private-key = ["GPH6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]
#seed-nodes = []
#enable-stale-production = true

# ID of witness controlled by this node (e.g. "1.6.5", quotes are required, may specify multiple times)
witness-id = "1.6.1"
witness-id = "1.6.2"
witness-id = "1.6.3"
witness-id = "1.6.4"
witness-id = "1.6.5"
witness-id = "1.6.6"
witness-id = "1.6.7"
witness-id = "1.6.8"
witness-id = "1.6.9"
witness-id = "1.6.10"
witness-id = "1.6.11"

解释一下上面的设置:

p2p-endpoint,指定开启的p2p监听端口,以方便其他节点连接,可以作为其他节点的seed-node。

rpc-endpoint,指定开启的rpc监听端口,以方便cli-wallet和web钱包与证人节点连接。

genesis-json,设置genesis.json的路径,通常只在创建新链生产创世区块时设置。

enable-stale-production,让本节点无视区块链数据的时间,无论如何都生成区块数据。该字段通常只在创建新链生产创世区块时设为true。当已存在区块链时,一定要将本参数设为false或者不管,否则会因数据不完整导致分叉。

seed-nodes,设置种子节点集合,以方便快速连接到区块链网络和同步区块链数据。在创建新链生产创世区块时设为空,以防止连接到正式网络(代码)中的默认种子节点。当连接已有区块链网络时,尽可能多的设置种子节点以加快同步速度。

witness-id,用于授权本证人节点所代表的证人id产生区块,可指定多个。一般来说一个证人节点授权一个证人id,私链第一个节点指定了11个。

8.生产私有测试链的第一个区块。 运行如下命令:
witness_node --data-dir data --enable-stale-production --seed-nodes "[]"

请注意,我们不需要my-genesis.json在命令行中指定,因为我们现在在配置文件中指定它。该--enable-stale-production 标志告诉在witness_node零块或非常旧块的链上生成。我们--enable-stale-production在命令行中指定参数,因为我们通常不需要它(尽管它也可以在配置文件中指定)。--seed-nodes添加空以避免连接到硬编码以进行生产的默认种子节点。

通过p2p网络连接到现有见证节点或从现有数据目录获得区块链状态的后续运行不需要具有该--enable-stale-production标志。
9.获取链ID
新建命令行运行如下命令:

curl --data '{"jsonrpc": "2.0", "method": "get_chain_properties", "params": [], "id": 1}' http://127.0.0.1:11011/rpc && echo

此curl命令将返回一个简短的JSON对象,包括chain_id。
下面的命令会用到chain_id
10.创建钱包:
mkdir -p wallet && cd wallet

cli_wallet --wallet-file my-wallet.json --chain-id cf307110d029cb882d126bf0488dc4864772f68d9888d86b458d16e6c36aa74b --server-rpc-endpoint ws://127.0.0.1:11011 -u '' -p ''

下面对指令参数进行解释:
--wallet-file:指定钱包json文件,该文件用于保存本钱包中所有加密后的私钥;
--server-rpc-endpoint:rpc服务器终端地址,指定钱包要连接的区块链全节点所需要的协议、地址和端口;
--rpc-endpoint:指定命令行钱包要监听的websocket RPC的ip地址和端口号;
--rpc-http-endpoint:指定命令行钱包要监听的HTTP RPC的ip地址和端口号;
--chain-id:指定要连接的区块链ID。不指定的话,钱包连接到bitshares的正式链上。

10.1 接下来设置密码:

set_password supersecret
unlock supersecret
11.导入账号和资金:
要将帐户导入钱包,必须知道账户名称和私钥才行。使用import_key命令将代码中默认的账户nathan导入钱包(其私钥为5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

import_key nathan 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

现在已经将私钥导入到钱包中,但初始账户仍然没有资金(后面升级账户需要资金)。 资金在genesies.json文件中的initial_balances字段已经设置好了。 使用import_balance命令可以将这些资金免费(相对于转账需要付手续费来说的)导入钱包:

import_balance nathan ["5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"] true

12.创建帐户:

12.1创建帐户需要终身成员(LTM)状态。要升级到LTM,请使用以下upgrade_account命令:

upgrade_account nathan true

12.2确认nathan现在处于LTM状态:

get_account nathan

在打印的账户属性中,membership_expiration_date的属性值应该是1969-12-31T23:59:59 。 如果仍然是1970-01-01T00:00:00,那么账户就没有成功升级。

12.3现在用原账户作为注册商注册一个新帐户了。 首先需要新帐户的公钥。可以通过suggest_brain_key命令来获得:

suggest_brain_key

显示的信息大致如下:
{
  "brain_priv_key": "FACADAL POOF FOXER MOUSE BANDOG CUBEB BRIERED NE JUTKA QUILLED TORIC GRYLLOS FLEAM LEEWILL PLENIST HUSBAND",
  "wif_priv_key": "5JtnWHxYMUD13sBPNMzprH1Z6r1nH3EWV1WeQXpAbsMLgxVt7tp",
  "pub_key": "BTS5s2iBiMeaCt96hoiAhQz94AqiPChTNF2YpYt6zJNNFJonhXPTF"
}

12.4 
其中brain_priv_key是私钥助记符,wif_priv_key是钱包导入格式的私钥,pub_key。一定要记下以上重要的信息找个黑客攻击不到的地方保存起来,非常关键。

现在可以注册一个新帐户。可以只使用前面推荐的公钥来注册一个名为alpha的新帐户:

register_account alpha BTS5s2iBiMeaCt96hoiAhQz94AqiPChTNF2YpYt6zJNNFJonhXPTF BTS5s2iBiMeaCt96hoiAhQz94AqiPChTNF2YpYt6zJNNFJonhXPTF nathan nathan 0 true

12.5
转移资金给新账户
transfer nathan alpha 100000 BTS "here is some cash" true

可以验证alpha是否收到了钱,运行一下命令查看账户余额:

list_account_balances alpha

pc端钱包使用介绍

https://www.jianshu.com/p/ab49971cf3f2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,429评论 2 45
  • 今天我学习了一下怎样利用cocoapods导入第三方库,网上有很多牛人关于cocoapods的介绍、安装与使用。具...
    我叫小五阅读 252评论 0 0
  • 腊月初时,寒风凛凛。 从明孝陵出,约百十步到东陵遗址。 颓迹阶高略五七尺,杂草下, 老苔石砾藤束,散立于柱头发尾。...
    摩羯星一号阅读 258评论 5 8
  • 2018.05.11 编号28 日精进709天 今日感悟: 1只要沟通不到位时,原本不该出现的低级错误都可能发生!...
    宇宙之爱黄昊贵阅读 171评论 0 0