작전으로 보상을 굽기
2 대답
- 투표
-
- 2019-04-21
보상은 프로토콜의 일부로 발생하며 모두 체인에 있습니다. 그러나 일반적으로 트랜잭션에는 사용자 개입이 필요하기 때문에 일반적인 의미에서 "트랜잭션"이 아닙니다. 그러나 "냉동고"에서 대표단으로 자금이 근본적으로 이동하고 있습니다. 개념적으로 냉동실은 베이킹 및 보증에 대한 모든 유대와 보상을 일시적으로 보유합니다.
체인에서이 정보를 찾으려면 보상을 기대할 수있는주기의 마지막 블록을 살펴 봐야합니다.
blockNumForRewards=(rewardedCycleNum + 6) *numOfBlocksInCycle
예를 들어 93주기의 경우 93주기의 보상은 98주기의 마지막 블록에서 잠금 해제되므로 블록 번호
(93 + 6) * 4096=405,504
를 확인해야합니다.블록 번호를 알고 나면 블록을 쿼리 할 수 있습니다.tzscan과 같은 블록 탐색기에서 해시를 가져와 노드를 사용합니다. 이 경우
BLdha4dMeWYxYkuP46eCgYwsgBYiKPNFLvgiu5NqgdxPLhkgzUf
가 블록 해시입니다./chains/main/blocks/BLdha4dMeWYxYkuP46eCgYwsgBYiKPNFLvgiu5NqgdxPLhkgzUf
분명히 여기에는 많은 정보가 있지만 잔액 변경을 처리하는 경로,특히
<사전> <코드> { "프로토콜": "PsddFKi32cMJ2qPjf43Qv5GDWLDPZb3T3bF6fLKiF5HtvHNU7aP", "chain_id": "NetXdQprcVkpaWU", "hash": "BLdha4dMeWYxYkuP46eCgYwsgBYiKPNFLvgiu5NqgdxPLhkgzUf", "metadata": { ... "잔액 _ 업데이트": [ //이것이 우리가 관심을 갖는 것입니다. ] } ... }메타 데이터 > 잔액 _ 업데이트
. 예 :블록의이 부분은 사용자 개입에 관계없이 프로토콜이 적용해야하는 사항을 유지하는 잔액 업데이트입니다. 많은 블록에서이 부분은 잠긴 보상과 채권이있는 현재 블록 베이커 만 포함합니다. 주기의 마지막 블록에서
balance_updates
에는 93주기에 참여한 모든 베이커의 모든 보상 및 채권 잠금 해제도 포함됩니다.어쨌든 한 제과점의 세부 사항을 자세히 살펴 보겠습니다. 설명을 위해 특정 제빵사
tz1ivoFE ... TD
에 대한 거래를 필터링했습니다."balance_updates": [ ... { "kind": "냉동고", "category": "예금", "delegate": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "레벨": 93, "변경": "-10368000000" }, { "kind": "냉동고", "category": "수수료", "delegate": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "레벨": 93, "변경": "-9362" }, { "kind": "냉동고", "category": "보상", "delegate": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "레벨": 93, "변경": "-321000000" }, { "종류": "계약", "contract": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "변경": "10689009362" }, ...
balance_updates
배열 내부에는 "freezer"를 포함하여 이러한 모든 주소에 대해 조정해야하는 모든 "트랜잭션"이 포함됩니다. 각 거래는 또한 그들이 무엇을위한 것인지에 대한 단서를 제공합니다.위의 내용은 제빵 사당 볼 수있는 일반적인 내용입니다. 3 개의 "냉동고"관련 거래와 1 개의 "계약"이 있습니다. 'Freezer'거래는
카테고리
(예금
,수수료
및보상
)에 따라 다릅니다. 카테고리는 꽤 자명합니다. 궁금한 경우를 대비하여 예금과 보상에는 베이킹 및 보증 채권과 보상이 모두 포함됩니다. 이러한freezer 작업은 음수 값이며 이러한 잔액이freezer
에서 차감됨을 의미합니다.'계약'거래는 문제가되는 제빵사의 잔액을 변경하는 것입니다. 이것은 사용자가 시작한 트랜잭션과 매우 유사합니다. 3 개의 Freezer 카테고리의 잔액을 더하면 제빵사의 잔액 변경에 합산됩니다.
The rewards happen as part of the protocol and it's all on chain. But they are not a "transaction" in the normal sense of the word, as usually a transaction requires some user intervention. But there is fundamental movements of funds from the "freezer" to the delegates. Conceptually, the freezer temporarily holds all the bonds and rewards for baking and endorsing.
To find this information on chain, we have to look at the very last block of the cycle we'd expect the reward.
blockNumForRewards = (rewardedCycleNum + 6) * numOfBlocksInCycle
For example, for cycle 93, the rewards for cycle 93 gets unlocked at the last block of cycle 98, so we need to look at block number
(93 + 6) * 4096 = 405,504
.After we knowing the block number, We can query for the block with our node by getting the hash from a block explorer like tzscan. In this case,
BLdha4dMeWYxYkuP46eCgYwsgBYiKPNFLvgiu5NqgdxPLhkgzUf
is our block hash:/chains/main/blocks/BLdha4dMeWYxYkuP46eCgYwsgBYiKPNFLvgiu5NqgdxPLhkgzUf
Obviously there is a lot of information in here, but let's focus on the path that handles the balance changes, specifically
metadata > balance_updates
. Example:{ "protocol": "PsddFKi32cMJ2qPjf43Qv5GDWLDPZb3T3bF6fLKiF5HtvHNU7aP", "chain_id": "NetXdQprcVkpaWU", "hash": "BLdha4dMeWYxYkuP46eCgYwsgBYiKPNFLvgiu5NqgdxPLhkgzUf", "metadata": { ... "balance_updates": [ // this is what we care about ] } ... }
This portion of the block is the balance updates that retains to what the protocol needs to apply regardless of the user interventions. In a lot of the blocks, this portion will just include the current block baker with its locked rewards and bonds. In the last block of the cycle,
balance_updates
also includes all the rewards and bonds unlocks for every baker that participated in cycle 93.Anyhow, let's dig into the specifics of one baker to understand further. For illustration, I've filtered out transactions for one particular baker
tz1ivoFE...TD
."balance_updates": [ ... { "kind": "freezer", "category": "deposits", "delegate": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "level": 93, "change": "-10368000000" }, { "kind": "freezer", "category": "fees", "delegate": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "level": 93, "change": "-9362" }, { "kind": "freezer", "category": "rewards", "delegate": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "level": 93, "change": "-321000000" }, { "kind": "contract", "contract": "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD", "change": "10689009362" }, ...
Inside of
balance_updates
array, it will include every "transaction" that needs to be adjusted for all these addresses including the "freezer". Each transaction also gives some clues on what they are for.The above is pretty typical what we'll see per baker. There are 3 "freezer" related transactions and one "contract". The "freezer" transaction are different by their
category
(deposits
,fees
andrewards
). The categories are pretty self explanatory. Just in case you are wonder, deposits and rewards will include both baking and endorsements bonds and rewards. Notice that those freezer operations are negative values and they imply that these balances are subtracted fromfreezer
.The "contract" transaction is what changes the balance to the baker in question. This is pretty similar to a user initiated transaction. If we add up the 3 freezer category's balances, they would add up to the change balance for the baker.
-
이것이 정답입니다.내 대답은 제빵사가 프로토콜 자체를 통해 보상을받는 방식이 아니라 제빵사가 위임자에게 신용/보상하는 방법에 대한 질문에 대답했습니다.혼란을 없애기 위해 내 답변을 삭제했습니다.This is the correct answer. My answer answered the question of how baker credit/reward their delegators, not how a baker is rewarded via the protocol itself. To remove any confusion, I've deleted my answer.
- 1
- 2019-04-23
- lostdorje
-
@Frank "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD"가 제빵사임을 어떻게 알 수 있습니까? 2. 예금,수수료 및 보상이 모두 마이너스 인 이유.이해하도록 도와 주시겠습니까?@Frank how to know that "tz1ivoFEvbfbUNav5FwLvmxzMGcNXWxY9qTD" is the baker ? 2. Why deposits , fees and rewards all are in negative. Could you please help me understand ?
- 0
- 2020-02-23
- user3759202
-
1. 제빵사 주소는 예시 일뿐이 섹션에는 제빵사 만 포함됩니다.2. "냉동실 작업은 음수 값이며 냉동실에서 이러한 잔액이 차감됨을 의미합니다."Freezer는 체인이 저장하는 것이므로 Freezer에 대해서는 마이너스 밸런스 변경을하고 보상으로 플러스 밸런스 변경을하고 있습니다.제로섬입니다.1.That baker address is just an example, but this section only include bakers. 2. "Notice that those freezer operations are negative values and they imply that these balances are subtracted from freezer." Freezer is what the chain is storing, so we are making a negative balance change for the freezer and a positive balance change as the reward. It's zero sum.
- 0
- 2020-02-23
- Frank
-
@Frank 나는 여전히 냉동실 물건과 혼동됩니다.예금이 긍정적이고 보상도 긍정적 인 샘플을 거의 보지 못했습니다.어떤 시나리오에서 이것이이blochHash에 대해 가능한지 우리는 예금과 보상을 긍정적으로 찾을 수 있습니다@Frank I am still confused with the freezer stuff. I have seen few samples where deposit is positive and reward is also positive. In which scenario this is possible for this blochHash we can find the deposit and reward as positive
- 0
- 2020-02-24
- user3759202
-
- 2019-04-24
"짧은 버전"대답은 이것이 암호 화폐에 사용되는 블록 체인에서 매우 중요한 개념 인
consensus
를 통해 달성된다는 것입니다.불행히도 많은 사람들은 그것을 정말로 이해하지 못합니다.이 측면에서 본질적으로 "합의"라는 용어는 다음과 같이 요약됩니다.(그리고 이것은 동결 보상이나 예금 등을 고려하지 않은 매우 간단한 설명입니다.) Tezos 프로토콜에 대한 코드는 계정이 블록을 구울 때 해당 계정의 잔액이 ꜩ16만큼 증가한다고 지시합니다.모든 사람이 동일한 프로토콜을 실행하고 있기 때문에 계정이 블록을 생성하면 해당 계정의 잔액이 ꜩ16 증가한다는 데 모두 동의합니다.그게 합의입니다.
The "short version" answer is that this is accomplished through
consensus
, which is an extremely important concept in blockchains that are used for cryptocurrency. Unfortunately many people just dont really understand it; in this aspect essentially the term "consensus" boils down to:(and this really is a very simplified description here, not taking into account freezing rewards or deposits, etc) The code for the Tezos protocol dictates that when an account bakes a block, that account's balance simply goes up by ꜩ16. Since everyone is running the same protocol, everyone agrees that when an account bakes a block, that account's balance goes up by ꜩ16. Thats consensus.
베이킹 보상이 제빵사에게 적립되면 체인에 어떻게 표시 되나요?'트랜잭션'작업입니까?그들을 식별하려면 어떻게해야합니까?