Author Topic: 测试网硬分叉版本发布: test-2.0.180510  (Read 12820 times)

0 Members and 1 Guest are viewing this topic.

Offline lovegan007

  • Hero Member
  • *****
  • Posts: 606
    • View Profile
  • BitShares: gan888
比喻你抵押有一千万BTS,如果没改前,暴仓是这样的,一千万BTS直接被系统砸下去了。而改后是这样的,系统只卖掉小部份,让抵押仓位维持在175%。应该是这样改吧?

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
关于功能测试。

具体功能参见以前的几个帖子。
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 »
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
中文还没来得及写。

英文见: https://steemit.com/bitshares/@abit/bitshares-testnet-release-test-2-0-180510

New HARD FORK release for [BitShares](https://bitshares.org/) [Open Public TestNet](https://testnet.bitshares.eu) is out, version [test-2.0.180510](https://github.com/bitshares/bitshares-core/releases/tag/test-2.0.180510).

Hard fork time is scheduled at `Sat, 19 May 2018 13:58:00 UTC`.

Testnet nodes please upgrade, ALL PEOPLE please help test.

Mainnet release will be published after test is done, estimated date is around Tue, 12 June.

## Consensus changes:

* [BSIP26: Refund Order Creation Fee in Originally Paid Asset when order is cancelled](https://github.com/bitshares/bsips/blob/master/bsip-0026.md)
* [BSIP27: Asset Issuer Reclaim Fee Pool Funds](https://github.com/bitshares/bsips/blob/master/bsip-0027.md)
* [BSIP29: Require owner authority to change asset issuer](https://github.com/bitshares/bsips/blob/master/bsip-0029.md)
* [BSIP30: Always Allow Increasing Collateral Ratio If Debt Not Increased](https://github.com/bitshares/bsips/blob/master/bsip-0030.md)
* [BSIP31: Update Short Position's Margin Call Price After Partially Called Or Settled](https://github.com/bitshares/bsips/blob/master/bsip-0031.md)
* [BSIP32: Always Match Orders At Maker Price](https://github.com/bitshares/bsips/blob/master/bsip-0032.md)
* [BSIP33: Maker Orders With Better Prices Take Precedence](https://github.com/bitshares/bsips/blob/master/bsip-0033.md)
* [BSIP34: Always Trigger Margin Call When Call Price Above Or At Price Feed](https://github.com/bitshares/bsips/blob/master/bsip-0034.md)
* [BSIP35: Mitigate Rounding Issue On Order Matching](https://github.com/bitshares/bsips/blob/master/bsip-0035.md)
* [BSIP36: Remove expired price feeds on maintenance interval](https://github.com/bitshares/bsips/blob/master/bsip-0036.md)
* [BSIP37: Allow new asset name to end with a number](https://github.com/bitshares/bsips/blob/master/bsip-0037.md)
* [BSIP38: Add target collateral ratio option to short positions](https://github.com/bitshares/bsips/blob/master/bsip-0038.md)
* [Bugfix #184: Potential something-for-nothing fill bug](https://github.com/bitshares/bitshares-core/issues/184)
* [Bugfix #214: Proposal cannot contain proposal_update_operation](https://github.com/bitshares/bitshares-core/issues/214)
* [Bugfix #453: Multiple limit order and call order matching issue](https://github.com/bitshares/bitshares-core/issues/453)
* [Bugfix #588: Virtual operations should be excluded from transactions](https://github.com/bitshares/bitshares-core/issues/588)
* [Bugfix #868: Clear price feed data after updated a bitAsset's backing asset ID](https://github.com/bitshares/bitshares-core/issues/868)
* [Bugfix #890: Update median feeds after feed_lifetime_sec changed](https://github.com/bitshares/bitshares-core/issues/890)

Non-consensus changes and other info to be updated.
BitShares committee member: abit
BitShares witness: in.abit