Author Topic: ubuntu下安装bitshares-core 见证人  (Read 70619 times)

0 Members and 1 Guest are viewing this topic.

Offline ripplexiaoshan

  • Moderator
  • Hero Member
  • *****
  • Posts: 2300
    • View Profile
  • BitShares: jademont
转自kimziv在steemit的总结

选用备用服务器,最好换一家服务器提供商和地点,安装见证人节点,这个过程就略掉;

同步区块:
screen -S witness_node
./programs/witness_node/witness_node --replay-blockchain --rpc-endpoint=127.0.0.1:8090 #加上--replay-blockchain选项,可以降低内存

运行钱包,设置密码,解锁钱包
screen -S cli_wallet
.programs/cli_wallet/cli_wallet -s ws://127.0.0.1:8090
new>>>set_password 123456
locked >>> unlock 123456

创建sign秘钥对:

suggest_brain_key
{
"brain_priv_key": "XXXXX XXXX XXXXX XXXX",
"wif_priv_key": "5Kxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkf2ure",
"pub_key": "BTSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaerwr"
}
保存秘钥对,以供后面作为signing key使用;

Ctrl+C, 重新运行witness_node(关闭和启动的时候多耐心等待)
./witness_node -s 104.200.28.117:61705 --rpc-endpoint=127.0.0.1:8090 --witness-id '"1.6.71"' --private-key '["pub_key", "wif_priv_key"]’
#将1.671换成你的见证人序列号,pub_key和wif_priv_key分别换成第4步你创建的pub_key和wif_priv_key

运行钱包,解锁,导入sigin private key和active wif key
screen -r cli_wallet
.programs/cli_wallet/cli_wallet -s ws://127.0.0.1:8090
unlocked >>> import_key “witness.yao” 5Kxxxxxxxxxxx3 true #witness.yao换成你自己的账号,5Kxxxxxxxxxxx3换称该账号的签名权限的signing key
unlocked >>> import_key “witness.yao” 5Gxxxxxxxxxxx6 true #witness.yao换成你自己的账号,5Gxxxxxxxxxxx6换称该账号的活跃权限active key

更新见证人signing key
update_witness “witness.yao” "https://bitsharestalk.org/index.php/topic,23628.0.html" "BTSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaerwr" true
#将witness.yao换成你自己的账号,https://xxx换成你自己的url,没有可以填xxx,BTSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaerwr换成你第4步创建的pub_key

过几秒钟,在你主节点cli钱包查看你自己的见证人信息,检查你的signing_key是否更新:

get_witness “witness.yao” #将witness.yao换成你自己的见证人账号
{
[...]
"id": "1.6.71",
"signing_key": "BTSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaerwr",
[...]
}
或者进入http://cryptofresh.com/查看你自己的见证人信息,检查你的signing_key是否更新
,若signing_key更新了,同时出块正常,代表你成功了。

|9. 把你主节点和备用节点的signing key都保存下来,当你的当前出块节点出现问题的时候,你就可通过第7步更新成你的另一个节点的signing key,这样你就可以避免大量丢快。
P.S. 目前在研究见证人监控脚本,后面最好做到当出块节点出现故障的时候,自动切换到备用节点,希望多多交流。
BTS committee member:jademont

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
 +5%
节点这么多了

国内近日已新增以下 API 服务器节点,使用网页钱包和轻钱包的可以自行添加:
● wss://bit.btsabc.org/ws (比特股中文网 @吴序强 提供)
● wss://bts.transwiser.com/ws (易转网 @巨蟹 提供)
● wss://freedom.bts123.cc:15138 (著名的黑粉 @惨 提供)
● wss://okbtc.org:8089/ws (bebtc.com 的 @郑浩 提供)
● wss://ratebts.com:8089(@AJ 提供)
● wss://openledger.hk/ws (OpenLedger 香港提供)
telegram:ebit521
https://weibo.com/ebiter

Offline freedom

  • Sr. Member
  • ****
  • Posts: 303
    • View Profile
补充win7 64 sever下,做WSS节点的方法。
1、注册域名:一定要留自己的邮箱,申请证书时要用到。
2、申请证书:https://buy.wosign.com/free/#ssl     A记录解析没限制。但如果域名用cname解析就用二级域名,空的主机名不能设置cname。
3、等待通过,20分钟左右,然后下载证书。
4、解压:for Apache.zip              复制证书          2_你的域名.crt   和    3_你的域名.key     2个文件到桌面上。
5、cmd
cd desktop
copy 2_你的域名.crt /b + 3_你的域名.key /b server.pem

6、复制桌面生成的server.pem到   *\BitShares 2\bin  目录下
7、修改启动的bat文件如下并保存。
cd "%~dp0
witness_node.exe --rpc-endpoint 0.0.0.0:8090 --rpc-tls-endpoint 0.0.0.0:8089 -p server.pem
8、双击bat文件启动就可以了。

访问WSS用8089端口,WS用8090端口

至于内网没有公网IP,可以用花生壳或者nat123。
« Last Edit: September 06, 2016, 02:59:34 am by freedom »

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
telegram:ebit521
https://weibo.com/ebiter

Offline freedom

  • Sr. Member
  • ****
  • Posts: 303
    • View Profile
alt喂价安装

https://github.com/pch957/btsprice                                                                                               GITHUB
https://bitsharestalk.org/index.php/topic,20529.msg268242.html#msg268242                   论坛

代码:
pip3 install btsprice
pip3 install btsprice --upgrade
git clone https://github.com/pch957/btsprice.git
cd btsprice
python3 setup.py install --user
btsprice --config config.json

------------------------------------------
需要安装
autobahn安装0.12.1
这是btsprice的一个依赖版本过高

或者改源代码
/usr/local/lib/python3.4/dist-packages/btspusher/wamp.py

from autobahn.websocket.protocol import parseWsUr1
改成
from autobahn.websocket.util import parse_url
在把这个文件里的parseWsUrl改成parse_url
就OK了

我是改的代码
---------------------------------------------------------


建立config.json文件
地址:https://github.com/pch957/btsprice/blob/master/config.json.sample
#####################
{
    "witness": "",
    "timer_minute": 2,
    "asset_list": [
        "BTC", "SILVER", "GOLD", "TRY", "SGD", "HKD", "NZD", "CNY", "TCNY",
    "MXN", "CAD", "CHF", "AUD", "GBP", "JPY", "EUR", "USD", "KRW", "TUSD", "ARS"],
    "cli_wallet": {
        "host" : "localhost",
        "port" : 8092,
        "user" : "",
        "passwd" : "",
        "unlock" : ""
    },
    "price_limit": {
        "common": "only update price feed when the change rate is between 1% ~ 50%",
        "change_min": 1,
        "change_max": 50,
        "common": "spread bid price to price*(1+spread), ask price to price*(1-spread)",
        "common": "excute the order book, get the real price",
        "spread": 0.01,
        "common": "we use the average price in this time",
        "filter_minute": 30
    },
    "market_weight": {
        "poloniex_btc": 1,
        "yunbi_cny": 1,
        "btc38_cny": 1,
        "btc38_btc": 1,
        "bter_cny": 0
    },
    "asset_config": {
        "default": {
            "core_exchange_factor": 1.01,
            "maintenance_collateral_ratio": 1750,
            "maximum_short_squeeze_ratio": 1100
        },
        "TCNY": {"maximum_short_squeeze_ratio": 1001},
        "TUSD": {"maximum_short_squeeze_ratio": 1001}
    },
    "pusher": {
        "common": "set enable to 1, if you want to subscribe data from pusher service",
        "enable": "1",
        "user": "",
        "password": ""
    }
}
####################
注意把tcny和tusd删除掉,这个有喂价权限限制。
并修改
"witness": "",        ------------->"witness": "delegate.XXXXX",
"host" : "localhost", ------------->"host" : "127.0.0.1",
"port" : 8092,        ------------->"port" : 8095,            #这个看钱包怎么启动的端口
"unlock" : ""         ------------->"unlock" : "钱包解锁密码"
"timer_minute": 2,                   #这里是检测时间,每过2分钟检测,有变动喂价

同时,钱包要用以下启动
./programs/cli_wallet/cli_wallet -H 127.0.0.1:8095 -s ws://127.0.0.1:8090       #端口8095要对上号


-------------------
然后启动,不需要做定时任务
btsprice --config config.json


Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
telegram:ebit521
https://weibo.com/ebiter

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Quote
alt(9351964) 6:58:41
操,又被坑了,谁喂价249的,害我2500块买高了快3个点。喂价不准的witness我取消支持了
alt(9351964) 7:03:06
xman xn-delegate harvey-xts delegate.freedom 你们喂价都有问题,我先把你们的投票取消了

修改 config.py
第88行,ccedk,在最前面加 # 注释掉
第117行,ccedk,在最前面加 # 注释掉
第119行,btc38的bts/btc交易对,最前面加 # 注释掉
第120行,yunbi的bts/btc交易对,最前面加 # 注释掉
第192行,把最后面的BTC删掉,改成 bases=["CNY"]

喂价在BTS系统中的用途:
1. 计算爆仓触发条件,以及爆仓惩罚上限
2. 计算强制清算价格

个人认为,规则虽不完美,但基本合理。
喂价,等于见证人说:我觉得现在价格应该是多少多少。不可能每个人意见都一致,也就是说,容许有偏差。

alt所说的xeroc的喂价脚本bug,是按权重计算平均价格的原因。

xeroc脚本的喂价,等于几个交易所的 最新成交价*近期成交量*见证人自定义交易对权重,取平均值,完全是历史数据

这里有几个风险:
1. 市场深度,上面列出的几个交易对,由于长期深度低,价格偏差可能很大,要刷量也相对容易,会导致结果偏离
2. 网络问题,如果有的交易所数据取不到,导致结果偏离
3. 价格波动,可能正好在取值时,某交易所出现价格偏离,导致结果偏离
4. 汇率偏差,BTC市场按人民币、美元价格存在偏差,外汇市场时有波动,会导致多次转换时出现结果偏差
5. 更新延迟,见证人两次喂价之间有时间间隔,上次更新后,最新市场价可能已经变了,所以平均喂价有滞后效应
6. 参数设置,自定义权重是各见证人自己决定,不同人有不同看法,所以可能有不同设置。并不是非黑即白。
7. 程序BUG,未知/不详

小结:庄家要影响喂价,需要拉盘或者砸盘


alt的喂价脚本思路,是根据几个交易所的 当前挂单价格、挂单深度,以及历史成交数据加权计算,进行价格预测
(我没仔细研究,不知道是否有自定义权重等设置,也不知道汇率如何转换)

存在的风险:
1. 预测风险,历史数据及盘面数据,并不一定能确定后期走势
2. 根据历史成交数据进行负反馈计算,一定程度导致滞后效应
3. 网络问题、价格波动、更新延迟、参数设置、BUG风险等,与对xeroc脚本的分析相同

小结:庄家要影响喂价,可以拉盘或者砸盘,也可以挂单但不成交。


总结:
bts是基于信任的系统,存在系统风险,投资、决策请谨慎。
« Last Edit: June 13, 2016, 09:04:24 am by abit »
BitShares committee member: abit
BitShares witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Quote
alt(9351964) 6:58:41
操,又被坑了,谁喂价249的,害我2500块买高了快3个点。喂价不准的witness我取消支持了
alt(9351964) 7:03:06
xman xn-delegate harvey-xts delegate.freedom 你们喂价都有问题,我先把你们的投票取消了

修改 config.py
第88行,ccedk,在最前面加 # 注释掉
第117行,ccedk,在最前面加 # 注释掉
第119行,btc38的bts/btc交易对,最前面加 # 注释掉
第120行,yunbi的bts/btc交易对,最前面加 # 注释掉
第192行,把最后面的BTC删掉,改成 bases=["CNY"]
BitShares committee member: abit
BitShares witness: in.abit

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
Quote
alt(9351964) 6:58:41
操,又被坑了,谁喂价249的,害我2500块买高了快3个点。喂价不准的witness我取消支持了
alt(9351964) 7:03:06
xman xn-delegate harvey-xts delegate.freedom 你们喂价都有问题,我先把你们的投票取消了
telegram:ebit521
https://weibo.com/ebiter

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
python-graphenelib: Release 0.4
https://bitsharestalk.org/index.php/topic,22533.0.html

cd python-graphenelib
git pull
git checkout origin/master  确定位置
git submodule update    更新子模块
python3 setup.py install --user
pip install --user --upgrade graphenelib
« Last Edit: June 11, 2016, 02:07:16 am by ebit »
telegram:ebit521
https://weibo.com/ebiter

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
谢谢a神,谢谢极乐净土。
最后,总结一下遇到的问题。

(1)如果不是本机创建的witness,那么dump_private_keys,找到的只是active_key的私钥,而不是出块所需要的signing_key的私钥。

(2)以上两个key对不对,node一开机出现的两行地址如是。

(3)找不到signing_key怎么办?杀手锏是:suggest_brain_key 和update_witness这两条命令。
前者产生一组密钥,后者使用这组密钥更新signing_key。update_witness命令后面有个true或false的参数,后者不广播,可以用于检测。

(4)多见证人模式
改bitshares-2\witness_node_data_dir里面的config.ini
witness-id="1.6.1"
witness-id="1.6.2"
private-key=[]
private-key=[]

(5)喂价程序修改config.py
ask_confirmation             = False
+5% +5% +5%
BitShares committee member: abit
BitShares witness: in.abit

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
谢谢a神,谢谢极乐净土。
最后,总结一下遇到的问题。

(1)如果不是本机创建的witness,那么dump_private_keys,找到的只是active_key的私钥,而不是出块所需要的signing_key的私钥。

(2)以上两个key对不对,node一开机出现的两行地址如是。

(3)找不到signing_key怎么办?杀手锏是:suggest_brain_key 和update_witness这两条命令。
前者产生一组密钥,后者使用这组密钥更新signing_key。update_witness命令后面有个true或false的参数,后者不广播,可以用于检测。

(4)多见证人模式
改bitshares-2\witness_node_data_dir里面的config.ini
witness-id="1.6.1"
witness-id="1.6.2"
private-key=[]
private-key=[]

(5)喂价程序修改config.py
ask_confirmation             = False
telegram:ebit521
https://weibo.com/ebiter

Offline freedom

  • Sr. Member
  • ****
  • Posts: 303
    • View Profile
谢谢a神,搞定了
E神写的全对,感谢E神

删掉tcny就可以了

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
@abit  听说你已经理顺了这个安装过程中的疏漏,能分享下么?

是要排查某个资产么?
Code: [Select]
python3 pricefeeds.py CNY 试试这样
TCNY权限坏掉了。删掉就好了。
BitShares committee member: abit
BitShares witness: in.abit

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
@abit  听说你已经理顺了这个安装过程中的疏漏,能分享下么?

是要排查某个资产么?
Code: [Select]
python3 pricefeeds.py CNY 试试这样
« Last Edit: May 09, 2016, 10:00:45 am by ebit »
telegram:ebit521
https://weibo.com/ebiter