___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

clique

BY: @sigmoid | CREATED: April 20, 2019, 3:55 a.m. | VOTES: 2 | PAYOUT: $0.00 | [ VOTE ]

Ethereum PoA 합의 알고리즘은 문서가 부족하다.
코드를 분석하면서, 간단한 흐름도를 작성해 보았다.

PoA이기 때문에 authority라는 block producer리스트를 관리한다.
이 리스트는 투표를 통해 업데이트 할수 있고, 초기에 최소 1개의 프로듀서가 설정되어 있어야 한다.

생성자의 입장에서
기본적으로 마이닝 쓰레드는 계속 동작하지만, 내 순서가 아니기때문에 최종 블록이 생성되지 않는다. 내순서가 되면, 블록의 헤더를 생성하게 되는데 부모의 시간 + 나의 시간이 duration보다 작으면 wait을 호출하여 헤더 생성을 잠시 멈추는 방식으로 block duration을 조절한다.
이 후 블록이 Finalize되고 bloadcasting 된다.

수신자의 입장에서는 블록의 서명자가 authority리스트에 있으면 블록을 검증하고 추가한다.
투표내용이 있다면 수집하여 과반수 이상의 투표가 집계되면 인증자 리스트를 업데이트 한다.

[IMAGE: https://cdn.steemitimages.com/DQmQyAFvP2VmjtHpnp7hu3bj67ZYYsP4bRec57C7Mw7Gpo4/%EB%8F%84%ED%91%9C1.png]

TAGS: [ #clique ]

Replies

@steemitboard | May 12, 2019, 6:10 a.m. | Votes: 0 | [ VOTE ]

Congratulations @sigmoid! You received a personal award!

https://steemitimages.com/70x70/http://steemitboard.com/@sigmoid/birthday1.pngHappy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemitBoard - Witness Update

Vote for @Steemitboard as a witness to get one more award and increased upvotes!
[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>