Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - bitcrab

Pages: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16
106
General Discussion / Review of OMO
« on: February 13, 2019, 07:36:14 am »
the open market operation fund relevant threads are here:

https://bitsharestalk.org/index.php?topic=26107.0
https://bitsharestalk.org/index.php?topic=26072.0

below is a simple table that shows the balance change of the 2 OMO accounts.







in the past 10 months, committee-cnytrader lost 6130332 bitCNY and 26206002 BTS.

committee-usdoperator lost 177300 bitUSD and 10258313 BTS.

from 2018/3/20 to 2018/8/8, committee-cnytrader bought 10M-25M BTS, at price 0.79 - 2.2 bitCNY.

from 2018/8/14 to 2019/1/19, committee-cnytrader selled 10M-20M BTS in margin call, at price 0.61 - 0.24 bitCNY.

from 2018/3/29 to 2018/10/30, committee-usdoperator bought about 15M BTS, at price 0.095 - 0.36 bitUSD.

from 2018/10/19 to 2019/10/21, committee-usdoperator selled about 12M BTS in margin call at price 0.0615 to 0.0509 bitUSD

at 2018/10/25 bitUSD was global settled, 3M BTS from committee-usdoperator was global settled at 0.0511bitUSD.

the data is rough as now it is not convenient to process the transaction data, hope https://bitsharescan.com can add the data export feature.

107
中文 (Chinese) / 重启公市基金?
« on: February 11, 2019, 03:48:34 am »
目前bitCNY可预期的改革有:

1.继续降低MSSR,先从1.05降到1.02,不排除之后再进一步降低。

2.等到6月份分叉后改MCR,就算暂时不搞比较复杂的动态调整,也可以先通过投票达成共识然后要求见证人修改的方式先降低,预期降到1.5左右。

同时,感觉可以重新梳理下共识基金的规则重新开始运作。

设想的更新后的公市基金规则:

1.不再用worker proposal获取预算资金,只使用bitCNY market fee不断积累的资金。

2.只有当市场有吃不掉的爆仓单时,才可以挂单购买BTS。

3.只有当bitCNY有大于0.5%的折扣时,才可以挂单卖出BTS.

4.基金可以抵押借出bitCNY,原则是爆仓价不高于当前的全局清算价,当基金债仓爆仓价高于全局清算价时,不得继续借入,并且新流入的资金只能用来调仓降低爆仓价。

如何?




108
BSIP Doc: https://github.com/bitshares/bsips/blob/master/bsip-0058.md

2 worker proposals are created for this:

1.14.160: Poll-BSIP58-Global Settlement Protection on bitCNY

1.14.161: Poll-BSIP58-No Global Settlement Protection on bitCNY

as described in the BSIP Doc, this BSIP is a general solution for smartcoin, but this voting is only for bitCNY, if you support to implement BSIP58 on bitCNY, please vote for 1.14.160, otherwise, please vote for 1.14.161.

109
General Discussion / To switch to feed real market price in CNY market?
« on: December 26, 2018, 06:07:36 am »
it's clear now that bsip42 is given up by the community.

the key flaw of bsip42 is that it may make the feed price much higher than market price and make the margin call orders just stay there without being eaten. this can lead to risk accumulation.

even though, we have learned that the negative feedback mechanism really works, it's possible that we update the solution, one of the solution update plan is here: https://bitsharestalk.org/index.php?topic=27522.0

in the plan list the 4th -  reduce bitCNY force settlement offset to 2% - is finished, the 1st and 2rd involve big complex and need much time to reach consensus and implement.

the 3rd - change MSSR to 5% - is drafted as bsip41 and is now in voting process, in the voting process we can see it get big support from the community, however, some whales vote to oppose it as they do not want to reduce MSSR when some witnesses feed a price which is much higher than the market price.

as bsip42 is voted out, I think witnesses now need to feed real market price, right?

https://bitsharestalk.org/index.php?topic=27672.msg326693;topicseen#msg326693 here we can see that @roelandp @xman @xn-delegate and @cyazybit now feed a price which is 5%+ higher than the market price, how about to switch to feed real market price? in order to make the whales to support bsip41?

110
General Discussion / Why the BTS network status is so bad these days?
« on: December 20, 2018, 03:26:47 am »
the Bitshares network is so bad in the past several days, always cost several mins to open a page!

what cause this? API servers are degraded? GUI bugs?


111
General Discussion / how about reduce MSSR to 105% for bitCNY?
« on: December 18, 2018, 04:21:34 am »
please check worker proposals 1.14.144 and 1.14.145

and the drafted bsip: https://github.com/bitshares/bsips/blob/master/bsip-0041.md

112
General Discussion / suggestion on bitCNY rules update after BSIP42
« on: December 06, 2018, 08:35:16 am »
we learnt a lot after BSIP42 implementation, now we need to consider more on how to update bitCNY, actually there are a lot discussion on this topic in the community, especially in Chinese community, here I'd like to propose some new solution summarizing all the opinions.

1. change the way to handle black swan, keep the borrowing operation alive.

global settlement is a too direct  and too hard way to handle black swan, it stop the smartcoin borrowing business, while it happen it always give big negative impact on smartcoin ecosystem, we can see that bitUSD devalued a lot after the global settlement, the community require a more soft  way that has more little negative impact on the smartcoin ecosystem.

abit has suggested 2 new ways to handle black swan, one is to settle the accounts independently: https://bitsharestalk.org/index.php?topic=27273.0, one point is that this way may cause one phenomena that "to be settled earlier is better than later".

the other is to set feed price floor to provide black swan from happening: https://bitsharestalk.org/index.php?topic=27449.0
the current bitCNY is similar to be handled in the second way.

either way we will choose, it is important not to stop the smartcoin borrowing operation.

2. replace BSIP42 with dynamic MCR solution

the key point of dynamic MCR is also to introduce negative feedback mechanism to adjust smartcoin supply, different with BSIP42, in dynamic MCR solution the feed price will return to reflect the market price, then this solution will not bring the troubles of "margin call orders not being eaten" or "exploiting debt position owners with force settlement".

considering that in BSIP witnesses take the key responsibility and authority, this introduce much uncertainty and put witnesses at the place that undertake much doubts of feed price manipulation, here I suggest a new way to implement dynamic MCR:

2.1.  other than settlement price, CER, MCR, MSSR, introduce a new parameter premium to be fed by witnesses。witnesses need not to design complex negative feedback algorithm, they just need to get the price data from the market and feed to system.

2.2 add committee controlled parameters as below to each smartcoin:

low premium limit: when the fed premium is lower than this parameter, the process to make MCR higher will be triggered, default value: -2%
high premium limit:when the fed premium is higher than this parameter, the process to make MCR lower will be triggered, default value: 1%
max MCR:MCR will not increase while it reach this value, default value: 1.75
min MCR:MCR will not decrease while it reach this value, default value: 1.4
MCR tuning step:the value that MCR can be added or subtracted in each administrative period(1 hour), default value:0.001

at each administrative time system will check the feed premium and decide how to adjust MCR, if the parameters are set as default values shown above and at the time MCR=1.75, and premium=2%, then MCR will be adjusted to 1.749.

in this way the traders can expect the adjustment time and step, the can reflect in time to avoid being hurt, no manipulation doubt can be put to witnesses.

3. adjust MSSR to 105%

4.change force settlement offset to 2%, this will ensure that the discount of bitCNY will be no higher than 2% even after MCR reach the max limit.

what will this solution bring?

1. good peg of bitCNY
2. less volatility of BTS price
3. more risk?
4. less free market?

easy to understand that this solution will lead to good peg of bitCNY, as BSIP42 has proved, negative feedback mechanism works well on making a good pegging.

as MCR will change according to the premium of bitCNY, when bitCNY is in shortage and has a big premium, system will increase MCR and make more bitCNY supply possible and vice versa, for example, if we implement the solution at the current market status, we can expect that the MCR will be tuned to min value(maybe 1.4) in about 2 weeks, this will increase bitCNY supply obviously and can prevent BTS price from falling rapidly.

so will this solution introduce more risk to the system?
I believe this will depend on whether the margin call orders will be eaten quickly, the main issue of BSIP42 is that is make the margin call order price higher than the market price and accumulate big quantity of margin call orders without being eaten. but in the dynamic MCR solution, as feed price reflect the market price, we believe the margin called orders will be eaten just after they comes out, if necessary MSSR can be keep unchanged to ensure this.

and, I don't agree that this rule will bring a manipulated market that has been free when there is no such solution, they are just markets with different rules,  if the rules are certain and base on strong consensus, it will not bring manipulation, it just bring better user experience.   

I also suggest that witnesses can implement updated BSIP42 before community can reach consensus on above described solution and implement it.https://bitsharestalk.org/index.php?topic=27492.0

113
中文 (Chinese) / 【讨论】后BSIP42时代bitCNY的规则改进
« on: December 01, 2018, 02:32:25 pm »
BSIP42之后bitCNY需要继续改进,这里综合一下之前社区提出的各种方案供讨论。

1.改进黑天鹅的处理方式,不中断抵押

全局清算的方式太生硬直接,而且中断抵押功能来等待恢复,一旦发生就对智能货币生态形成很大打击,社区一直在呼唤更柔和对生态影响更小的处理方式。

abit提出了两种方式,一种是将资不抵债的债仓单独剥离的处理方式:https://bitsharestalk.org/index.php?topic=27274.0 一个“坏处”可能是会形成“晚黑不如早黑”的现象。

另一种是完全不剥离,达到黑天鹅条件时系统接管喂价,确保喂价不低于黑天鹅价,https://bitsharestalk.org/index.php?topic=27450.0类似现在bitCNY的处理方式。

无论采取哪种方式,不中断抵押都是需要的。

2.用动态MCR方案替代BSIP42

动态MCR方案依然是引入负反馈的机制来调节bitCNY供应,喂价回归市场价格,完全消除了BSIP42由于喂价偏离市场价而造成的爆仓单吃不掉,以及强清掠夺等现象。

考虑到BSIP42方案中赋予见证人太多的责任和权力,引入了太多的不确定性,也使得见证人总是处于喂价操纵的嫌疑中,这里建议采用新的方式来实施动态MCR方案:

2.1.在settlement price, CER, MCR, MSSR 之外, 引入一个新的参数premium(溢价)供见证人来喂。见证人不用设计复杂的负反馈算法,只需从市场获取相应智能货币的溢价数据喂给系统。

2.2对每一个智能资产,增加以下理事会有权调节的参数:
low premium limit: 溢价下限,溢价低于此数值系统启动加大MCR操作,缺省值 -2%
high premium limit:溢价上限,溢价高于此数值系统启动减小MCR操作,缺省值 1%
max MCR:MCR最大值,MCR调整至此数值后不再执行加大操作,可设为 2?
min MCR:MCR最小值, MCR调整至此数值后不再执行减小操作, 可设为1.25?
MCR tuning step:系统每个维护周期(一小时)可调节的MCR的大小,可设为0.001

如参数按以上数值设置,则每一个整点的时候系统会根据当前见证人喂的溢价数据来自动调节MCR,如果当前bitCNY溢价超过1%,则MCR从1.75调整至1.749,下个整点接着调整,知道MCR到达1.25或者bitCNY溢价小于1%。

这样的系统调整方式使得用户可以预见到调整方向和幅度,而且调整幅度也足够用户做出增加抵押等反应。见证人也可免于操纵喂价的嫌疑。

3.将MSSR改为102%

4.将强清补偿改为2%,这样当MCR调整达到上限后,依然有强清保证bitCNY折价不会超过2%。


114
中文 (Chinese) / BSIP42反思与展望
« on: November 29, 2018, 02:15:02 pm »
BSIP42负反馈喂价改革的实验现在可以说是告一段落,那么也应该对其做一个整体的反思。

关于负反馈喂价的大部分讨论是在中国社区进行的,最多的讨论在https://bitsharestalk.org/index.php?topic=26315.0 ,bitCNY一直都存在“如何保证供应,如何博阿正锚定”的问题,“过剩则减,短缺则加”的负反馈思路很自然地被人提出来了,首先想到的还是通过调节MCR来调节智能货币的供给,但是由于涉及到一些bug的修复而难以尽快实施,就把思路转到了通过调整喂价来调整供给上面。

通过调整喂价来调整供给有一些天然的缺点:

1.喂价本来的定义就是市场价格,如过实施负反馈喂价那么喂价就被重新定义为一种“指导价”,这非常难以向用户解释。

2.由于喂价和爆仓,强清等直接相关,喂价偏离市场价格后也影响到爆仓和强清的正常执行,如后来所看到的,但喂价高于市场价幅度达到10%以上时,爆仓单的价格就会大于市场价,因而导致了大量的爆仓单难以被市场消化,造成风险累积。

最初,我也因为这些原因反对负反馈喂价,但由于市场确实需要一种调节机制并且一时难以从MCR入手,后来我被abit说服,同意负反馈喂价方案并开始积极推进,再后来abit起草了相应的BSIP,投票通过后开始着手实施。

BSIP42的实施是从bitCNY开始,因为bitCNY的市场深度和活跃度都比bitUSD好很多,更适合做这样的实验。

八月底BSIP42开始在bitCNY实施的时候,正值BTS价格刚从1.2元跌至0.8元左右,bitCNY出现了明显的溢价,BSIP42的实施立竿见影,很快消除了溢价,但是始料未及的是,市场对bitCNY的需求也一路走低,导致当初高于内盘价格的喂价不得不被调整至低于内盘价格,导致一些原本按市场价不应爆仓的仓位爆仓,引起了很多怨言。

BSIP42的实施也使得BTS内盘价格与外盘价格更紧密的绑定在一起,按照负反馈的逻辑,内盘价格低于内盘视为bitCNY有溢价,反之则视为有折价,溢价上调喂价,折价下调喂价,这就引起内盘价格上升会导致喂价下调,外盘价格降低也会导致喂价下调,内盘价格需要保持比外盘低才能稳定喂价,在一定程度上这种现象缩小了市场空间,降低了市场活力。虽然后来通过折价容忍的手段尝试解决过,但还是没有从根本上上消除影响。

还有一个问题是,市场价格是瞬息万变的,由见证人实时提供动态的喂价调整使得喂价变化难以预测,很多时候让交易者无所适从。

但从效果上看,BSIP42确实让bitCNY锚定得更好了,在稳定币成为市场风口的时候,这一现象是让人兴奋的,阿姆斯特丹bitFEST期间,我同xeroc等西方理事讨论在bitUSD实施BSIP42的计划,但xeroc这种典型的“保守的德国人”基本上总是在说“投票,八周后看结果”之类的话,而当时一些俄罗斯和新加坡的人士已经在讨论做bitUSD承兑的事情,我觉得BSIP42需要再bitUSD上尽快实施。

于是后来我就以手中的选票为筹码,要求见证人们在bitUSD上实施BSIP42,后来引起了xeroc的不满,讨论之后达成妥协:xeroc原则同意在bitUSD上实施BSIP42,而我也同意见证人可以自己选择是否在bitUSD上实施BSIP42,后来bitUSD就进入了一种不是很完整的BSIP42实施状态。

之后市场一路走熊,更严重的危机在慢慢积累,由于负反馈喂价导致喂价一直都比内盘价格高不少,于是市场积累了许多没有消化的爆仓单,而在bitUSD市场这一现象又比bitCNY市场严重得多,终于在几次大跌之后,bitUSD市场在2018年11月25日发生了黑天鹅,所有的债仓被全部清算。

大的市场形势的极度恶劣是黑天鹅的首要原因,当然BSIP42本身也增大了黑天鹅发生的可能性。

之后bitCNY也屡屡陷入黑天鹅边缘,但因见证人们及时做了黑天鹅防护,最终没有发生黑天鹅。

但是让人遗憾的是,市场的换手导致反对BSIP都投票多过了支持反对BSIP42的投票,按理说,对于一个已经过去许久的投票,即便要重新根据投票结果执行,也应该理好足够平滑的过渡路线,可是许多见证人选择了直接转换,其结果就是爆仓单对价格再度形成下压之势,而bitCNY再现5%-10%的高溢价。

这都是在719硬分叉之前没少看见的场景,本来不应该在这个时候重现,遗憾的是又一次出现了。

BSIP42有不少的问题,但是这实验也至少证明了,在一定范围内bitCNY的锚定是可以保证的,脱锚的害处大家都理解,不用多讲,在这个场景下也很容易理解BSIP42的必要性:bitCNY极度短缺,溢价高企,巨大的爆仓单压制的内盘价格并顺带也压制了外盘价格,这种时候,不正是采取措施释放出更多bitCNY的时候吗?明明可以有刺激生态活力的机会,却在那里干等着,让bitCNY持有者们慢慢等待最好的吸筹机会?

大换手没什么好抱怨的,那都是市场行为的结果,既然上了桌那就认赌服输,但是让bitCNY再次陷入毫无必要的高溢价,让市场再度对bitCNY产生怀疑,到底有啥必要啊?

我的建议是在这个时候重启BSIP42,当然加入一些更新:

1.增加黑天鹅防护,确保喂价 >全局清算价*1.11

2.确保喂价高于市场价

3.确保喂价低于市场价*MSSR

4. 如果1与3冲突,舍弃3

5.对-2%-1%之间的溢价作容忍,不更改喂价。

当然,这也是一个临时的方案,长远看,还是要推动态MCR方案。

但就算是动态MCR方案,如果依然是用见证人喂的方式来决定最终MCR,依然有着以前存在的问题 - MCR变动太频繁而且难以预期,交易者难以适应。

如果技术上可以解决,我更倾向于让见证人喂价格和溢价,而由系统根据溢价来自动调整MCR,就象POW系统里自动调整难度一样。

比如规则可以设定为,系统每小时更新一次MCR,溢价在-2%-1%区间不改动MCR,如果超出范围则更新时向相应方向改动一个千分点。

这样MCR的更改是可以预期的,而且一天最多改动2.4个百分点,方便交易者应对。

115
as some time ago the voting power that oppose BSIP42 overcome that support BSIP42, most of the witnesses return to feed just market price, immediately the BTS/bitCNY price fall about 8%, although more margin call orders are eaten, but:

1. price fall continue, bitCNY holders seems to wait for lower price, no big will to eat current margin call orders.

2. bitCNY has a premium of about 10%, it's a disaster for bitCNY business.

3.more debt position margin called, not obvious margin call quantity reduction.

actually witnesses need to be careful while doing a big change, it is not a good behavior to just change while seeing the voting result - no one host/claim/announce the voting activity, it is likely that some balance owner change lead to this result, please be careful while seeing this!

here I propose to restart BSIP42, with adding some new logic:

1.add the black swan protection logic, ensure feed price >global settlement price*1.11

2.ensure feed price > market price.

3.ensure feed price < market price*MSSR

4. if 1 conflict with 3, ignore 3.

5.tolerate a -2%-1% premium, do not adjust feed price if bitCNY premium is in this interval.

this poll will be regarded successful if it get more voting weight than 1.14.119
-----------------------------------------------------------------------------------------------------------

因为BSIP42投票刚刚反对票多过了支持票,于是一些见证人就直接改回了真实市场价喂价,导致内盘BTS价格瞬间跌了7,8个点,虽然帮助消化了一些低抵押率爆仓单,但是造成的恶果是:

1.价格再持续下跌,bitCNY吃爆仓单的意愿并没有足够强,期待更低价格的情绪明显。

2.bitCNY再次溢价10%,大家可以想象带来的恶果是什么。

3.喂价持续下跌带来了更多的爆仓单。

BSIP42投票有特定的计票日,即便要取消BSIP42也不应该采取这么生硬的方式。而且在现在这样的非常时期是需要BSIP42来提升活力并确保bitCNY供应的,我提议对BSIP42进行更新之后重新启动,更新如下:

1.增加黑天鹅防护,确保喂价 >全局清算价*1.11

2.确保喂价高于市场价

3.确保喂价低于市场价*MSSR

4. 如果1与3冲突,舍弃3

5.对-2%-1%之间的溢价作容忍,不更改喂价。

本投票当获得支持超过1.14.119时生效。

116
General Discussion / please restart BSIP42!!!
« on: November 29, 2018, 06:40:04 am »
as some time ago the voting power that oppose BSIP42 overcome that support BSIP42, most of the witnesses return to feed just market price, immediately the BTS/bitCNY price fall about 8%, although more margin call orders are eaten, but:

1. price fall continue, bitCNY holders seems to wait for lower price, no big will to eat current margin call orders.

2. bitCNY has a premium of about 10%, it's a disaster for bitCNY business.

3.more debt position margin called, not obvious margin call quantity reduction.

actually witnesses need to be careful while doing a big change, it is not a good behavior to just change while seeing the voting result - no one host/claim/announce the voting activity, it is likely that some balance owner change lead to this result, please be careful while seeing this!

now I greatly propose: 
 
1. witnesses please restart BSIP42, however according to what we learn in the past, I suggest to add black swan protection logic, and ensure the feed price is not lower than market price and not higher than market price*MSSR.

2. please vote to support BSIP42.

3.start the process to draft updated solution to relevant issues.

117
中文 (Chinese) / 呼吁见证人重启BSIP42喂价
« on: November 29, 2018, 06:27:41 am »
因为BSIP42投票刚刚反对票多过了支持票,于是一些见证人就直接改回了真实市场价喂价,导致内盘BTS价格瞬间跌了7,8个点,虽然帮助消化了一些低抵押率爆仓单,但是造成的恶果是:

1.价格再持续下跌,bitCNY吃爆仓单的意愿并没有足够强,期待更低价格的情绪明显。

2.bitCNY再次溢价10%,大家可以想象带来的恶果是什么。

3.喂价持续下跌带来了更多的爆仓单。

BSIP42投票有特定的计票日,即便要取消BSIP42也不应该采取这么生硬的方式。而且在现在这样的非常时期,取消BSIP42如何做好过渡至关重要,当前,我呼吁:

1.见证人重启BSIP42喂价,但接受前面教训,喂价应该保证不低于黑天鹅保护价以及市场价,同时不高于市场价*MSSR。

2.社区投票支持BSIP42。

3.启动新版解决方案的制定。

118
General Discussion / how to revive bitCNY?
« on: November 27, 2018, 06:14:52 am »
frankly speaking, bitCNY is already in black swan status if the feed price reflect the real market price.

however, I don't think it's good to return to feed real market price and leave black swan happen for bitCNY,  as we have seen in bitUSD, after black swan happened, now the peg break, borrowing stop, hard to revive.

I suggest to protect bitCNY from black swan by setting a black swan protection price, say black swan protection price = global settlement price*1.11.

feed price = max(market price, black swan protection price)

then when market price goes up, the margin called orders will be eaten step by step, the black swan protection price become lower and lower, and bitCNY has chance to revive.

Thoughts?

119
General Discussion / suggest to disable forcesettlement for bitCNY
« on: November 06, 2018, 10:12:29 am »
at this moment the settlement price is lower than latest price in bitCNY market. which means the debt positions are in risk to be force sold in a under market price.



it is not acceptable.

bitCNY is in good liquidity, if bitCNY want to convert bitCNY to BTS he can just trade in the market, here the force settlement here is not necessary but sometimes provide chance for speculator to exploit debt position owners.

I suggest to disable force settlement for bitCNY.

kindly let me know your opinion.

120
General Discussion / price feeding review
« on: November 06, 2018, 03:57:47 am »
price feeding become more critical after the BSIP42 implementation.

currently the feed price in CNY is 4.5% lower than the latest price, in the past several days the gap was even bigger.


according to the negative feedback logic, it's possible and acceptable that the feed price be lower than the latest price, but we still need to review whether there are some flaws here that may hurt the ecosystem.

there are always some price gap between DEX and CEX, if the gap is not big enough, we can not expect the gap be removed by arbitrage,if the CEX price keeps a little lower than DEX price, the negative feedback algorithm may respond and reduce the feed price, in some extreme situation the reducing feed price may trigger continuous margin call which is not so necessary.

while reducing feed price directly lead to margin call that force sell, increasing feed price do not lead to force buy, witnesses need to be more careful while reducing the feed price.

I suggest that we can introduce a "protect discount limit" in the price feeding algorithm, if the smartcoin discount is not bigger than this limit, algorithm does not start the negative feedback process.

that's why gdex-witness updated the algorithm as below:

Code: [Select]
Pdex:BTS price in DEX in smartcoin
Pf: current feed price
premium: current premium

scale=1;
get Pdex, Pf, premium;

while True:
   
   get Pdex, Pf, premium;
   if 0.3%>premium>-0.5%: ##just adopt the current median if the absolute premium is low enough.
       feed price = Pf;
   else:
       feed price = Pf*(1+premium*scale);
   time.sleep(120); ##update every 2 minutes.

I also suggest that each witness publish the price feed algorithm, which can help proxies to review and evaluate the witness work.


Pages: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16