假设有 a, b, c 三个见证人轮流出块, 他们在出块的过程中可能会碰到如下的一些窘境. 首先是最简单的情况: ![](https://cdn.steemitimages.com/DQmaPYAsjRMQPd5WLpQhKQR4NAcTPannBnFPD8t9ZTaB8L8/image.png) a, b, c 第一轮出块很完美, 第二轮开始 a 基于 c 出块, 依然正常. 但是 b 可能恰好 c 和 a 的块他都没收到, 也可能是它自己确实是坏人, 总之这第二轮它的块指向了自己在第一轮出的块. 接下来 c 出块时 (假设 c 正常收到了所有消息), 他看到的就是图上这番景象. 那么它出块应当基于 a 区块还是 b 区块呢? 根据最长链准则, 显然它应当基于 a 区块出. 这里我们讨论一个细节, 就是 c 怎么判断它看到的 a 和 b 谁的高度比较高. 分别从 a, b 往前推到头来计数肯定是很慢的, 所以在我们的实现中高度信息也会写到区块中. 那么问题又来了, 如果高度写到区块里, 那 b 在第二轮出块的时候把自己的块高度写的比较大不就行了吗? 当然是不行的, 在我们的实现中, 见证人收到每个块是都会验证前一个块在不在, 以及验证前一个块的高度是不是只比收到的块小 1, 如果不是的话, 块会被拒绝. 上面说的是最基本的情况, 下面是一个相对复杂一点的情况, 就是当轮到某个节点出块时, 它发现当前有两个块高度一样, 它不知道自己的块应该指向这两个块中的哪个. 这个情况的产生可能是由于 c 没有收到 b 的区块, 于是在 c 出块时 c 看到的只有 a 区块, 于是就继续在 a 后面出, 而 a 是成功收到了 b 和 c 的区块的. 于是再到 a 出块时, a 就会看到 b, c 高度都是 2, 并且都指向自己第一次出的块. ![](https://cdn.steemitimages.com/DQmUTH4xaGnyiXQsEYMUy8dnf3fdrjdnYVZpUD5vwA5gucU/image.png) 这个窘境怎么解呢? 我们规定, 但出现两个长度相同的链时, 见证人应当基于较早 (可以比较两个块的时间戳, 或者比较两个块出块人在见证人列表中的先后次序) 接收到的块出块. 这里显然 b 是较早接收到的块, 于是 a 这次出块应当基于 b 区块出.
post_id | 63,807,692 |
---|---|
author | cifer |
permlink | 5wmzpt |
category | cn-programming |
json_metadata | {"app":"steemit\/0.1","format":"markdown","tags":["cn-programming","cn-reader","cn","bitshares","dpos"],"image":["https:\/\/cdn.steemitimages.com\/DQmaPYAsjRMQPd5WLpQhKQR4NAcTPannBnFPD8t9ZTaB8L8\/image.png"]} |
created | 2018-10-07 11:27:33 |
last_update | 2018-10-07 11:27:33 |
depth | 0 |
children | 4 |
net_rshares | 7,548,040,969,807 |
last_payout | 2018-10-14 11:27:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 8.747 SBD |
curator_payout_value | 2.808 SBD |
pending_payout_value | 0.000 SBD |
promoted | 0.000 SBD |
body_length | 1,004 |
author_reputation | 7,963,630,681,040 |
root_title | 关于最长链准则的两个考量 |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 SBD |
percent_steem_dollars | 10,000 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
adm | 0 | 7,345,190,344,007 | 40% | ||
jademont | 0 | 64,130,060,760 | 20% | ||
mrstaf | 0 | 1,324,100,569 | 38.5% | ||
khunfarang | 0 | 157,216,180 | 38.5% | ||
khunpoom | 0 | 75,337,899 | 20% | ||
britcoins | 0 | 5,521,906,773 | 80% | ||
cifer | 0 | 6,293,120,969 | 100% | ||
apasia.tech | 0 | 12,752,726,363 | 77% | ||
xiaoshancun | 0 | 81,286,255 | 100% | ||
steembet.asia | 0 | 475,379,310 | 80% | ||
kimchi-king | 0 | 1,022,074,665 | 40% | ||
cnbuddy | 0 | 11,030,211,448 | 1% | ||
open-asset | 0 | 206,466,188 | 40% | ||
lebin | 0 | 26,208,540,282 | 5% | ||
coindzs | 0 | 169,810,792 | 100% | ||
oliwaw | 0 | 12,273,975,336 | 100% | ||
neexal | 0 | 87,939,924 | 38.5% | ||
freerolll | 0 | 237,092,720 | 77% | ||
imransoory | 0 | 11,933,725,167 | 100% | ||
seb3364 | 0 | 322,743,224 | 100% | ||
mstedda | 0 | 6,347,958,542 | 100% | ||
merry1990 | 0 | 440,218,453 | 100% | ||
davidisaevv | 0 | 440,059,168 | 100% | ||
ivan.gotovin | 0 | 445,497,988 | 100% | ||
hronys | 0 | 438,585,808 | 100% | ||
jheriko | 0 | 439,664,087 | 100% | ||
eduard999 | 0 | 439,906,101 | 100% | ||
hackettm21 | 0 | 445,499,211 | 100% | ||
azimiro | 0 | 439,687,283 | 100% | ||
giogiorgadze1221 | 0 | 439,901,432 | 100% | ||
supan4ik | 0 | 439,940,306 | 100% | ||
hommike | 0 | 438,878,569 | 100% | ||
miki21731 | 0 | 439,765,559 | 100% | ||
halfpox | 0 | 438,724,804 | 100% | ||
marksbanana | 0 | 439,541,045 | 100% | ||
fightjumping | 0 | 438,959,464 | 100% | ||
goosencat | 0 | 553,771,302 | 100% | ||
unarmedxyloid | 0 | 439,520,769 | 100% | ||
crashingin | 0 | 444,907,753 | 100% | ||
ahullcortege | 0 | 439,496,522 | 100% | ||
decorousoutspoke | 0 | 438,649,541 | 100% | ||
kendip | 0 | 439,064,164 | 100% | ||
dmitriynemov | 0 | 439,207,517 | 100% | ||
cwitosaw | 0 | 438,900,872 | 100% | ||
pinchtedious | 0 | 439,760,910 | 100% | ||
wigeonfeatures | 0 | 439,455,872 | 100% | ||
porkfondant | 0 | 439,266,682 | 100% | ||
movementfrugal | 0 | 439,716,673 | 100% | ||
weightyweary | 0 | 439,044,832 | 100% | ||
bangbangbooking | 0 | 438,821,461 | 100% | ||
periodslack | 0 | 439,287,234 | 100% | ||
modulardrudge | 0 | 444,653,766 | 100% | ||
kiraluchkova | 0 | 444,802,439 | 100% | ||
mrandreas | 0 | 155,450,304 | 40% | ||
kernovanatali | 0 | 439,705,252 | 100% | ||
rodionrasaev | 0 | 439,597,079 | 100% | ||
metaboliss | 0 | 439,846,574 | 100% | ||
olgafalatova | 0 | 439,728,046 | 100% | ||
telephonewhy | 0 | 440,315,033 | 100% | ||
pollfullscreen | 0 | 445,683,992 | 100% | ||
towheelocate | 0 | 440,017,345 | 100% | ||
cityscapeleaf | 0 | 440,095,827 | 100% | ||
ordinatechert | 0 | 439,906,152 | 100% | ||
scourgebar | 0 | 439,732,338 | 100% | ||
indigooccupy | 0 | 440,229,634 | 100% | ||
desktopcarrots | 0 | 440,156,164 | 100% | ||
filletsslither | 0 | 439,950,610 | 100% | ||
ploverpick | 0 | 439,843,668 | 100% | ||
yelploopy | 0 | 439,927,238 | 100% | ||
butlervault | 0 | 440,128,896 | 100% | ||
dianation | 0 | 141,220,182 | 38.5% | ||
magicbomb | 0 | 439,741,538 | 100% | ||
modelingkey | 0 | 440,335,498 | 100% | ||
twitchgoody | 0 | 440,134,980 | 100% | ||
definitefeed | 0 | 440,678,237 | 100% | ||
abalonegrateful | 0 | 441,886,487 | 100% | ||
diplute | 0 | 440,133,566 | 100% | ||
bloodsiege | 0 | 440,543,822 | 100% | ||
defectiveindent | 0 | 440,215,492 | 100% | ||
zombieprivilege | 0 | 440,118,877 | 100% | ||
infusedbatter | 0 | 440,005,038 | 100% | ||
unequaledpelite | 0 | 444,434,952 | 100% | ||
corneahang | 0 | 439,862,160 | 100% | ||
aefimov88 | 0 | 439,559,675 | 100% | ||
anryper | 0 | 440,231,799 | 100% | ||
asavin88 | 0 | 439,619,996 | 100% | ||
digital-jesus | 0 | 157,655,007 | 38.5% | ||
dessertplay | 0 | 440,814,842 | 100% | ||
fieldsonce | 0 | 440,885,787 | 100% | ||
estoniancurry | 0 | 440,429,154 | 100% | ||
abnormalsystem | 0 | 441,179,726 | 100% | ||
lymphomatumblr | 0 | 440,939,657 | 100% | ||
outgoingtosser | 0 | 440,449,347 | 100% | ||
nartemov198 | 0 | 441,541,243 | 100% | ||
akravzov1982 | 0 | 441,067,858 | 100% | ||
rozenbah | 0 | 447,517,701 | 100% | ||
irina.borisyuk | 0 | 446,491,482 | 100% | ||
igmosk1987 | 0 | 442,236,120 | 100% | ||
antonturov90 | 0 | 441,916,830 | 100% | ||
postmax | 0 | 441,849,975 | 100% | ||
patric.zhang | 0 | 549,053,159 | 100% | ||
bastardwhoop | 0 | 448,363,667 | 100% | ||
liarslalom | 0 | 448,120,243 | 100% | ||
tyresgoose | 0 | 449,134,069 | 100% | ||
beepymonoxide | 0 | 448,376,179 | 100% | ||
skvoz | 0 | 449,014,002 | 100% | ||
egorgolubev | 0 | 448,102,075 | 100% | ||
oles9373 | 0 | 448,331,671 | 100% | ||
msalla | 0 | 449,006,693 | 100% | ||
olegka111 | 0 | 448,430,347 | 100% | ||
qwopa.naoxote | 0 | 448,144,709 | 100% | ||
droopydefinite | 0 | 448,111,684 | 100% | ||
routeceil | 0 | 443,258,905 | 100% | ||
fearfultanager | 0 | 443,208,988 | 100% | ||
sparrowcricket | 0 | 443,256,230 | 100% | ||
godwitresources | 0 | 443,293,958 | 100% | ||
tintblooden | 0 | 443,268,199 | 100% | ||
ruffcheesy | 0 | 443,308,889 | 100% |
hmmm ... any link to an english version perhaps? :_)
post_id | 63,872,610 |
---|---|
author | britcoins |
permlink | re-cifer-5wmzpt-20181008t123827980z |
category | cn-programming |
json_metadata | {"app":"steemit\/0.1","tags":["cn-programming"]} |
created | 2018-10-08 12:38:33 |
last_update | 2018-10-08 12:38:33 |
depth | 1 |
children | 2 |
net_rshares | 22,208,573,593 |
last_payout | 2018-10-15 12:38:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.024 SBD |
curator_payout_value | 0.006 SBD |
pending_payout_value | 0.000 SBD |
promoted | 0.000 SBD |
body_length | 52 |
author_reputation | 3,090,295,432,513 |
root_title | 关于最长链准则的两个考量 |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 SBD |
percent_steem_dollars | 0 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
britcoins | 0 | 5,713,148,241 | 100% | ||
cifer | 0 | 41,696,649 | 2% | ||
apasia.tech | 0 | 15,995,115,567 | 100% | ||
cheneats | 0 | 196,036,597 | 12.5% | ||
motherboy | 0 | 262,576,539 | 3.12% |
oh sorry.. not good at english. i am trying hard
post_id | 63,888,934 |
---|---|
author | cifer |
permlink | re-britcoins-re-cifer-5wmzpt-20181008t175412580z |
category | cn-programming |
json_metadata | {"tags":["cn-programming"],"app":"steemit\/0.1"} |
created | 2018-10-08 17:54:15 |
last_update | 2018-10-08 17:54:39 |
depth | 2 |
children | 1 |
net_rshares | 25,841,230,482 |
last_payout | 2018-10-15 17:54:15 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.028 SBD |
curator_payout_value | 0.007 SBD |
pending_payout_value | 0.000 SBD |
promoted | 0.000 SBD |
body_length | 48 |
author_reputation | 7,963,630,681,040 |
root_title | 关于最长链准则的两个考量 |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 SBD |
percent_steem_dollars | 10,000 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
britcoins | 0 | 4,891,439,472 | 100% | ||
cifer | 0 | 4,627,463,127 | 100% | ||
apasia.tech | 0 | 16,322,327,883 | 100% |
because you use the tag #bitshares, I wonder why ... :) you can try @bangzi, he translates EN-CN
post_id | 64,128,409 |
---|---|
author | britcoins |
permlink | re-cifer-re-britcoins-re-cifer-5wmzpt-20181012t162049477z |
category | cn-programming |
json_metadata | {"tags":["cn-programming","bitshares"],"app":"steemit\/0.1","users":["bangzi"]} |
created | 2018-10-12 16:20:48 |
last_update | 2018-10-12 16:21:09 |
depth | 3 |
children | 0 |
net_rshares | 0 |
last_payout | 2018-10-19 16:20:48 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 SBD |
curator_payout_value | 0.000 SBD |
pending_payout_value | 0.000 SBD |
promoted | 0.000 SBD |
body_length | 97 |
author_reputation | 3,090,295,432,513 |
root_title | 关于最长链准则的两个考量 |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 SBD |
percent_steem_dollars | 0 |
tremendous work. keep it up ♥
post_id | 64,152,718 |
---|---|
author | imransoory |
permlink | re-cifer-5wmzpt-20181013t030703581z |
category | cn-programming |
json_metadata | {"app":"steemit\/0.1","tags":["cn-programming"]} |
created | 2018-10-13 03:07:06 |
last_update | 2018-10-13 03:07:45 |
depth | 1 |
children | 0 |
net_rshares | 0 |
last_payout | 2018-10-20 03:07:06 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 SBD |
curator_payout_value | 0.000 SBD |
pending_payout_value | 0.000 SBD |
promoted | 0.000 SBD |
body_length | 29 |
author_reputation | 50,634,257,333,295 |
root_title | 关于最长链准则的两个考量 |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 SBD |
percent_steem_dollars | 10,000 |