比特帝国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

比特帝国 首页 比特股 比特股资讯 查看内容

7月份比特股硬分叉(升级)相关信息

2018-7-3 23:32| 发布者: admin| 查看: 254| 评论: 0|原作者: abit

【测试网】 硬分叉时间 北京时间 5月31号 (周四) 22:00 。

测试网见证人及其他参与测试的朋友请及时升级(需要在硬分叉时间前升级)。

这个版本修了3个需要硬分叉的bug,以及一些其他优化。

代码: https://github.com/bitshares/bitshares-core/releases/tag/test-2.0.180525

修改内容:

1. 硬分叉部分:

【Bugfix #922 / #931 / #970】 当修改BitAsset的参数,比如修改背书资产、修改强清延迟时间等时,遗漏一些检查。现在修正。

【Bugfix #935】 上个版本里对#868及#890的修复,在某些情况下不会触发爆仓检查,现在修正以及补查。

【Bugfix #942】 循环扣款时,遗漏对被扣款人进行白名单检查。现在修正。

2. 其他优化部分(包含上个测试版本中未列出的内容)

【FC 库 PR #36】 增加支持 Boost 1.64-1.65

【FC 库 PR #43】 修正一处内存泄露问题

【FC 库 PR #44】 修正一个使用diffie-hellman算法计算共享秘钥时的潜在错误(memo加密相关)

【PR #938】修正一个可能导致错误的区块索引保存到本地磁盘的问题

【Issue #582, PR #813】 修正macOS节点(重钱包)收到挂单后崩溃的问题

【Issue #776, PR #816 / #955】 修正有些交易发生时没有通知客户端、所以客户端不会自动刷新的问题

【Issue #888, PR #954】 修正检查喂价过期时的整型溢出问题

【Issue #864, PR #865】 修正命令行钱包使用 transaction builder 时可能不正确签名的问题

【Issue #859, PR #801 / #817】 修正macOS下、Ninja下编译失败问题

【Iuuse #136, PR #928】修正测试案例中一处资产供应量的计算错误

【Issue #805, PR #840 / #919 / #937】 增加日志配置项,改进日志记录内容

【Issue #943, PR #869 / #945】 优化报错信息

【Issue #727, PR #880】 节点崩溃时输出堆栈信息

【Issue #878, PR #927】 可以配置IO线程数,或者根据CPU内核数自动配置IO线程数

【Issue #862, PR #872】 优化查询资产列表API的翻页参数

【Issue #863, PR #871】 优化get_ticker API的返回时间戳,现在返回最新块时间戳而不是当前时间

【Issue #811, PR #861】 命令行钱包增加 get_full_account 命令

【PR #850】 命令行钱包不再缓存资产数据

【PR #918】修正一处命令行钱包帮助文档错误

【PR #804】 重构p2p和app模块部分代码以方便测试

【PR #851 / #853 / #854 / #855】修复一些编译警告
« Last Edit: May 26, 2018, 12:09:29 pm by abit »
关于功能测试。

具体功能参见以前的几个帖子。
https://bitsharestalk.org/index.php?topic=25926.msg315666#msg315666
https://bitsharestalk.org/index.php?topic=26011.msg316139#msg316139
https://bitsharestalk.org/index.php?topic=26158.msg317036#msg317036

【BSIP26】下单手续费用非BTS,撤单返还原始手续费币种而不是返还BTS
测试方法(注意用其他资产付手续费):
* 分叉前,下单+撤单:分为主动撤单,过期自动撤单,金额太小被动撤单几种;还要测部分成交后的撤单;
* 分叉前下单,分叉后撤单;
* 分叉后,下单撤单。

【BSIP27】资产发行人可以直接取出资产手续费池中的BTS
GUI 实现这个功能之前,可以用 cli_wallet 也就是命令行钱包测试。有个新命令,格式是:
claim_asset_fee_pool [资产名] [金额] [是否广播]
比如
claim_asset_fee_pool XIANHUA 1000 true
表示从 XIANHUA 的手续费池中取 1000 BTS 。

测试方法:
* 分叉前,这个命令应该会报错
* 分叉后,资产发行人可以用这个命令,需要测试:发行人正常取钱成功、非发行人取钱失败、取负数失败、超额取钱失败等等。

【BSIP29】修改资产发行人需要 Owner key
GUI 实现这个功能之前,可以用 cli_wallet 也就是命令行钱包测试。有个新命令,格式是:
update_asset_issuer [资产名] [新发行人] [是否广播]
比如
update_asset_issuer XIANHUA niufen true
表示把 XIANHUA 资产转给 niufen 。

测试方法:
* 分叉前,这个命令应该报错
* 分叉前,可以用 update_asset 命令,或者通过 GUI 修改资产发行人,需要 active key
* 分叉后,update_asset 命令不能用来修改发行人,命令里指定新发行人会报错
* 分叉后,update_asset_issuer 命令应该可以使用,需要测试:用 owner key 正常转让成功、active key转让失败、转让他人资产失败等等。

【BSIP30】在爆仓状态可以上调抵押率,但抵押率不足最低要求时不能增加借款
测试方法:
* 分叉前,爆仓状态,比如抵押率 150% 时,调仓时必须保证调整后抵押率在 175% 以上
* 分叉后,只要上调抵押率、同时保证借款不增加,就可以成功,比如,可以调整到 151% 。需要测试:正常调整成功、增加借款失败、降低抵押率失败等等。

【BSIP31】爆仓单部分成交后爆仓价自动更新
测试方法(注意:自建资产可以指定喂价人,不一定要见证人喂价):
* 分叉前,喂高价,借款,喂低价造爆仓,吃爆仓单、强清造成实际抵押率排序与按爆仓价排序不同,甚至排名第2的已经资不抵债但不触发黑天鹅
* 分叉瞬间,爆仓价自动更新,排序与抵押率一致,触发成交甚至黑天鹅
* 分叉后,继续吃爆仓单、以及强清,爆仓价自动更新,与实际抵押率排序相同

【BSIP32】挂单撮合以 Maker 价成交
测试方法:
* 分叉前,主动吃爆仓单成交价是买单价
* 分叉后,主动吃爆仓单成交价是喂价/1.1

【BSIP33】挂单撮合时价格优先
测试方法:
* 分叉前,如果有爆仓单,并且有低于爆仓单的卖单,挂买单价格高于喂价/1.1时,会和爆仓单成交
* 分叉后,上述买单会先和低价卖单成交

【BSIP34】爆仓单不成交问题
* 分叉前,挂高价买单,然后喂价造爆仓导致挂出来不成交
* 分叉瞬间,由于规则变化,不成交的单会成交
* 分叉后,挂高价买单,会直接成交

【BSIP35】整除问题
整除问题包含5种情况:匹配两个限价单、限价单与爆仓单、强清单与爆仓单、全局清算/黑天鹅、黑天鹅之后的强清。
每种情况里还包含 0 金额和非0金额两类。
测试方法举例(限价单)(例子中数值单位为1聪,或者说资产都是0位小数):

* 分叉前,账户A挂卖单卖 100 BTS 换 2000 卢布,账户B挂买单以 30 卢布换 1 BTS,成交结果是B花 30 卢布买 1 BTS
* 分叉后,重复上述测试案例,成交结果是B花 20 卢布买 1 BTS

* 分叉前,两个账户A和B先后都挂卖单卖 1 BTS 换 20 卢布,另一个账户 C 挂买单以 30 卢布换 1 BTS,成交结果是 A 得 20 卢布 付 1 BTS、B 白得 10 卢布、C 得 1 BTS 付 30 卢布
* 分叉后,重复上述测试案例,成交结果是A和C完成1BTS换20卢布的交易,B的单子不成交

上面的测试,因为一方是 1 ,可以单向整除,所以还不完全。可以测试类似 101 BTS 卖 2017 卢布这种情况。

其他4种情况类似。


【BSIP36】删除过期喂价
这个只影响见证人和理事会喂价的资产,需要见证人或者理事会成员来测。
测试方法:
* 分叉前,投上去一批见证人,喂价,然后换一批人,再喂价,原来那批人喂价过期后还是残留在系统里,可以查到
* 分叉瞬间,过期喂价会被清除(不影响当前喂价,所以不触发爆仓撮合成交)
* 分叉后,重复上述测试,过期喂价会在定期维护时被清除(测试网是每5分钟维护一次,正式网是整点维护)

这个功能不影响自定义喂价人的资产,也可以验证测试一下,是否影响。


【BSIP37】资产名称可以以数字结尾
测试方法:
* 分叉前,创建资产,名称可以包含英文和数字,但必须英文开头和结尾
* 分叉后,创建资产,名称可以包含英文和数字,只要求英文开头,可以用数字结尾


【BSIP38】设定爆仓后卖多少的功能
GUI 实现这个功能之前,可以用 cli_wallet 也就是命令行钱包测试。有个新命令,格式是:
borrow_asset_ext [账号] [借款金额] [借款币种] [抵押金额] [扩展字段] [是否广播]
比如
borrow_asset_ext niufen 1000 XIANHUA 100 {"target_collateral_ratio":1750} true
表示抵押 100 抵押物,借出 1000 XIANHUA ,如果爆仓,只卖出部分抵押物,到抵押率 175% 为止(可少量超过)
borrow_asset_ext niufen 1000 XIANHUA 100 null true
表示爆仓时,不限制卖多少抵押物
borrow_asset_ext niufen -500 XIANHUA 100 {"target_collateral_ratio":2000} true
表示增加 100 抵押,归还 500 XIANHUA,如果爆仓,只卖出部分抵押物,到抵押率 200% 为止(可少量超过)

注意:
* 每次调仓,必须重新指定扩展字段,新的会覆盖旧的。如果调仓时用 null ,表示不再限制爆仓时卖多少。
* 如果用老的 borrow_asset 命令,或者用没升级的 GUI 钱包调仓,则不会指定扩展字段,也就是不限制卖多少(和现在一样)。

测试方法:
* 分叉前,用大买单吃爆仓单,可以一次吃完
* 分叉前,上述命令的 [扩展字段] 参数如果不用为 null 会报错
* 分叉后,可以用非 null 。数值必须 0 - 65535 ,表示 0% - 6553.5% 。但是,如果最低抵押率是 175%,那么低于1750时会以1750为准。
* 分叉后,用大单吃爆仓单,如果爆仓单设置了扩展字段,会吃不完,这时,检查剩余仓位的抵押率和爆仓价


【Bugfix #184】这个就是 BSIP35 里的金额为 0 的情况

【Bugfix #214】用提案来批准提案
测试方法:
* 分叉前,不能把“批准提案”这个操作放到提案里。GUI里可以试,批准提案时,弹出签名确认框,选择提案再确认,会报个错。
* 分叉后,可以。

【Bugfix #453】多个大爆仓单同时砸盘时可能会和低价买单成交
测试方法:
* 分叉前,造若干个大小不一、抵押率一样的债仓,以及若干个大小不一、价格不一的买单,然后喂低价让所有债仓爆仓,会发现高价买单没成交完,低价买单有成交。
* 分叉后,重复测试,价格高的买单成交、低价的不成交

【Bugfix #588】可以签虚拟交易上链的问题
测试方法:
* 分叉前,可以把“取消清算单”操作(本应该是虚拟操作)放在一个提案中上链,虽然不会有实际效果。
* 分叉后,不行。

【Bugfix #868】修改智能资产的背书资产后,清除现有喂价
背景:发行量为 0 时,智能资产的背书资产是可以修改的。
测试方法:
* 分叉前,先喂价,然后修改背书,老的喂价数据不清除
* 分叉瞬间,错误的喂价会被清除,喂价会更新,同时重新检查爆仓单并撮合成交
* 分叉后,修改背书时,老的喂价数据会清除

【Bugfix #890】修改智能资产的喂价有效时间时,更新喂价并检查爆仓单
测试方法:
* 分叉前,先喂价,然后修改资产的喂价有效时间,不会更新当前喂价。比如改短了,该过期,但是还可以借款;或者改长,本来过期的变成不过期,该爆仓不爆。
* 分叉瞬间,喂价会更新,同时重新检查爆仓单并撮合成交
* 分叉后,修改资产的喂价有效时间时,会更新当前喂价
« Last Edit: May 19, 2018, 11:03:46 am by abit »

比特帝国区块链交易所

最新评论

返回顶部