Withdraw your validator

검증자 인출 방법

아고라 인출 업그레이드 이후(KST (UTC+9) 2023년 8월 23일 오전 10시 05분 53초)에 두 가지 방법 으로 검증자 노드의 스테이킹된 BOA를 인출할 수 있습니다.

  1. 부분 (리워드) 인출: 이 옵션을 사용하면 리워드(즉, 40,000 BOA 이상 스테이킹한 모든 가치)을 인출하고 검증을 계속할 수 있습니다.

  2. 전체 인출: 이 옵션을 사용하면 전체 지분과 수익을 청산하여 검증인 노드를 효과적으로 청산하고 네트워크에서 탈퇴할 수 있습니다.

이 튜토리얼 에서는 두 가지 유형의 인출을 수행하는 방법을 알아보겠습니다.

월렛, 니모닉 문구, 명령줄에 익숙하실 것으로 예상 하고 진행 합니다.

전제 조건

  1. 검증자 니모닉: 이 정보를 사용하여 검증자 인출 요청을 승인합니다.

  2. Agora 노드에 액세스: 출금 요청을 제출하려면 유효성 검사기를 비콘 노드에 연결해야 합니다. 필요한 경우 빠른 시작에서 지침을 확인하세요.

  3. Agora-chain 설치완료: 아고라 체인은 아고라 연구팀이 제공하는 아고라 노드 및 도구입니다.

  4. 작업할 시간: 이 절차는 시간이 많이 소요되는 절차로, 실수를 하게 되면 많은 비용이 발생할 수 있습니다. 사기꾼을 경계하고, 니모닉을 절대 공유하지 마시고, 천천히 진행하시고, 궁금한 점이 있으면 텔레그램으로 연락하세요.

다른 종속 요소는 진행하면서 설치하겠습니다.

옵션 1: 부분 (리워드) 인출

이 섹션에서는 부분 리워드 인출을 수행하는 과정을 안내하여 각 활성 Agora 검증인에 대해 40,000 BOA 이상의 스테이크 잔액을 인출할 수 있습니다.

1단계: 인출자격 증명 준비

아고라 스테이킹을 처음 사용할 때 생성된 파일 에서 유효성 검사기의 withdrawal_credentials을 검색합니다. deposit_data-XXX.jsonwithdrawal_credentials은 다음과 같습니다.

0x00500b3bf612bed69e888edeb045f590c3f37251e3e049c0732f3adaa57ea3f6

deposit_data-XXX.json파일이 없는 경우 Agora-cl API를 통해 동기화된 Agora 노드에 요청을 보내고 유효성 검사기 인덱스 또는 공개 키를 제공하여 withdrawal_credentials을 검색할 수 있습니다 .

curl -X 'GET' \
  'http://YOUR_AGORA_NODE_HOST:3500/eth/v1/beacon/states/head/validators/YOUR_VALIDATOR_INDEX_OR_PUBLIC_KEY' \
  -H 'accept: application/json'

이 요청에 대한 응답에서 인출 자격 증명withdrawal_credentials을 볼 수 있습니다.

포맷 출력 예시입니다:

{
  "execution_optimistic": false,
  "data": {
    "index": "1",
    "balance": "1",
    "status": "active_ongoing",
    "validator": {
      "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
      "withdrawal_credentials": "0x008e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
      "effective_balance": "1",
      "slashed": false,
      "activation_eligibility_epoch": "1",
      "activation_epoch": "1",
      "exit_epoch": "1",
      "withdrawable_epoch": "1"
    }
  }
}

2단계: 오프라인 환경에서 니모닉을 사용해서 agora-deposit-cli 를 실행하고 blstoexecutionchange메세지를 생성 합니다.

이 단계에서는 BOSagora 프로젝트에서 제공하는 Agora-chain도구를 사용하여 서명된 요청을 Agora 네트워크에 제출합니다.

Agora-chain 설치 명령어

기존에 이미 Agora-chain 을 이용하여 노드를 실행중이거나 또는 설치 하였다면 아래 명령어는 건너 띄어도 됩니다.

  • Linux / Mac

mkdir agora-chain
cd agora-chain
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bosagora/agora-chain/v0.x.x/agora.sh)"
  • Windows

mkdir agora-chain
cd agora-chain
curl -S -L -o agora.bat https://raw.githubusercontent.com/bosagora/agora-chain/v0.x.x/agora.bat
call agora.bat

! 주의

최대한 보안을 위해 인터넷 연결없이 이 다음 단계를 수행하는 것이 좋습니다 . 서명을 위한 니모닉을 도입하기 전에 인터넷을 끄거나 Air-Gapped 환경으로 마이그레이션하여 다음 단계를 계속하십시오.

이제 Agora-chain의 deposit-cli를 실행할 수 있으므로 이를 사용하여 서명된 BLS to Execution 요청을 생성할 수 있습니다. 이 단계에서는 니모닉을 사용해야 하므로 오프라인에서 수행하는 것이 중요하며 필요하지 않은 곳에 니모닉을 붙여넣지 않도록 해야 합니다.

다음은 프로세스를 시작하는 명령입니다. 이 명령은 아직 서명된 메시지를 네트워크에 제출 하지 않고 다음 단계에 필요한 데이터만 생성합니다.

  • Linux / Mac

./agora.sh deposit-cli generate-bls-to-execution-change <folder>
  • Windows

agora.bat deposit-cli generate-bls-to-execution-change <folder>

'폴더'는 SignedBLSToExecutionChange 데이터가 저장되는 곳입니다. 기본 폴더는 linux/mac 에서 ./bls_to_execution_changes입니다.

위의 명령을 호출하면 다음 정보를 묻는 대화식 프로세스를 거쳐야 합니다.

  1. 사용언어 : 사용 가능한 다양한 옵션을 볼 수 있습니다. 여기서 영어는 옵션 중 하나입니다.

  2. 이 작업을 수행할 네트워크 입니다 . 예: mainnet, testnet또는 devnet.

  3. 다음에 니모닉을 입력하세요.

  4. 다음으로 유효성 검사기를 만드는 데 사용한 시작 인덱스를 묻는 메시지가 표시됩니다(HD 지갑에 대한 자세한 내용은 여기 참조 ). 대부분의 사용자의 경우 기본값이 아닌 인덱스에서 유효성 검사기를 생성하지 않는 한 이 값은 0 입니다.

! 정보

스테이킹에 사용된 원본 deposit.json파일 내에서 각 검증인의 공개 키를 0부터 순차적으로 계산할 수 있습니다. 검증자 시작 인덱스는 철회하려는 첫 번째 검증자 키의 인덱스입니다(즉, 검증자 키 1은 인덱스가 0이고 검증자는 키 2의 인덱스는 1 등입니다.) 대부분의 스테이커의 경우 모든 유효성 검증자 키를 인출하려면 유효성 검증자 시작 인덱스를 0으로 설정해야 하지만 일부 유효성 검사자 인출을 건너뛰도록 선택하면 유효성 검증자 시작 인덱스가 달라집니다. 니모닉이 보증금 생성에 여러 번 사용되어 다른 유효성 검증자 시작 인덱스가 생성되는 다른 사례가 있습니다. 서로 다른 니모닉에 걸쳐 있는 유효성 검증자는 각각의 시작 인덱스를 0으로 하여 별도로 계산해야 합니다.

  1. 그런 다음 메시지를 생성하려는 유효성 검증자의 유효성 검증자 인덱스를 묻는 메시지가 표시됩니다 . https://www.agorascan.io/ 와 같은 블록 탐색기 또는 Agora-cl 유효성 검증자 클라이언트 로그에서 유효성 검사기 인덱스를 찾을 수 있습니다. 예를 들어https://www.agorascan.io/0x800b1496d4532bbf3404de63619b779bad95dba69396e5d5c4eb64c7aa4a9a1a77229ec8783ad114a14d2eda2a3483ca 의 공개 키가 있는 유효성 검증자는 유효성 검증자 인덱스 20을 가지고 있으며 해당 페이지 로 이동하여 확인할 수 있습니다 .

! 정보

Validator 인덱스는 원래 생성된 순서대로 인덱스를 건너뛰지 않고 순차적으로 제공해야 합니다. 일반적으로 원본 파일에서 주문을 찾을 수 있습니다 deposit.json. 순차적이지 않은 여러 유효성 검증자 키를 철회해야 하는 경우 명령 generate-bls-to-execution-change을 반복해야 하며 출력 파일 병합 또는 여러 blstoexecutionchange제출이 필요합니다. 다른 출금 주소가 필요한 검증자의 경우 다른 출금 주소가 있는 검증자의 검증자 시작 인덱스를 사용하여 이 프로세스를 반복해야 합니다.

  1. 다음으로 이 가이드를 따랐다면 이제 가지고 있어야 하는 인출 자격 증명을 묻는 메시지가 나타납니다.

  2. 다음으로 인출된 자금을 받는 데 사용할 Agora BOA 주소를 묻는 메시지가 나타납니다. 이것은 체크섬이 필요하며 지갑이나 블록 탐색기에서 가져올 수 있습니다. 온체인으로 설정되면 변경할 수 없으므로 진행하기 전에 세 번 확인하십시오.

아래는 위에서 설명한 대화식 프로세스를 실행하는 예입니다.

Please choose the (mainnet or testnet) network/chain name ['mainnet', 'testnet', 'devnet']:  [mainnet]: devnet

Please enter your mnemonic separated by spaces (" "). Note: you only need to enter the first 4 letters of each word if you'd prefer.: board fire prize defy limb arm diet fee usage settle rigid sunny duty squirrel cheap history session same tilt candy loan culture pretty anchor
Please enter the index position for the keys to start generating withdrawal credentials in ERC-2334 format. [0]: 39
Please enter a list of the validator index number(s) of your validator(s) as identified on the beacon chain. Split multiple items with whitespaces or commas.: 39
Please enter a list of the old BLS withdrawal credentials of your validator(s). Split multiple items with whitespaces or commas. The withdrawal credentials are in hexadecimal encoded form.: 0x0072b98f706baf445239abb7b3cbf7a070f9bf34cf016a2c093a9034f364045d
Please enter the 20-byte execution address for the new withdrawal credentials. Note that you CANNOT change it once you have set it on chain.: 0xc304A2aBCb9f14677cE1BA9242637A3a053b2e3a

**[Warning] you are setting an BOA address as your withdrawal address. Please ensure that you have control over this address.**

Repeat your execution address for confirmation.: 0xc304A2aBCb9f14677cE1BA9242637A3a053b2e3a

**[Warning] you are setting an BOA address as your withdrawal address. Please ensure that you have control over this address.**


Success!
Your SignedBLSToExecutionChange JSON file can be found at: /agora-chain/bls_to_execution_changes/bls_to_execution_changes

3단계: 해당 유효성 검증자가 설정한 BOA 주소의 blstoexecutionchange메시지를 확인합니다.

위의 작업을 완료하면 agora-deposit-cli 에서 만든bls_to_execution_changes/ 폴더 에 파일이 포함됩니다 . 개인 키로 서명되고 Agora에 제출할 준비가 된 실행 메시지에 대한 BLS 목록을 나타냅니다. 샘플 파일은 다음과 같습니다.

포맷 출력 예시입니다:

[
    {
    "message": {
      "validator_index": "838",
      "from_bls_pubkey": "0xb89bebc655569726a318c8e9971bd3144497c61aea4a6578a7a4f94b547dcba5bac16a89108b6b6a1fe3695d1a874a0b",
      "to_execution_address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0a"
    },
    "signature": "0xa42103e15d3dbdaa75fb15cea782e4a11329eea77d155864ec682d7907b3b70c7771960bef7be1b1c4e08fe735888b950c1a22053f6049b35736f48e6dd018392efa3896c9e427ea4e100e86e9131b5ea2673388a4bf188407a630ba405b7dc5"
  },
    {
    "message": {
      "validator_index": "20303",
      "from_bls_pubkey": "0xb89bebc699769726a502c8e9971bd3172227c61aea4a6578a7a4f94b547dcba5bac16a89108b6b6a1fe3695d1a874a0b",
      "to_execution_address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
    },
    "signature": "0xa86103e15d3dbdaa75fb15cea782e4a11329eea77d155864ec682d7907b3b70c7771960bef7be1b1c4e08fe735888b950c1a22053f6049b35736f48e6dd018392efa3896c9e427ea4e100e86e9131b5ea2673388a4bf188407a630ba405b7dc5"
  }
]

위는 2개의 다른 유효성 검사기가 인출하는 것을 보여줍니다. 하나는 유효성 검증자 838인덱스가 있고 다른 하나는 유효성 검사기 20303 인덱스가 있습니다 .

! 주의

유효성 검증자의 validator_index로선택한 올바른 to_execution_address 주소에 해당하는지 확인합니다. 제출시 이 메시지가 수락되면 다시 변경할 수 없습니다! 올바른 선택에 해당하는지 확인하십시오. 제출 시 이 메시지가 수락되면 다시 변경할 수 없습니다!

bls_to_execution_changes-*.json다음 단계를 위해 동기화된 Agora 노드에 엑세스할 수 있는 온라인 환경으로 생성된 파일을 이동합니다 .

4단계: Agora-chain을 사용하여 blstoexecutionchange서명된 메시지를 Agora 네트워크에 제출합니다.

이 단계를 진행하려면 동기화된 Agora-cl 노드에 액세스 해야 합니다.

./agora.sh validator withdraw추가 플래그와 이전 단계의 bls_to_execution_changes 파일에 대한 경로를 제공하여 서비스 동의 조건 및 명령 확인을 요청하는 명령을 사용할 수 있습니다.

! 정보

기본 Agora 노드 REST <node-url>http://localhost:3500 또는 http://127.0.0.1:3500

Agora-chain이 설치된 위치에서 터미널을 열고 다음 명령을 실행합니다. 일부 사용자는 다운로드한 바이너리가 실행 가능하도록 권한을 부여해야 합니다. 운영 체제마다 다를 수 있습니다.

  • Linux / Mac

./agora.sh validator withdraw <folder>
  • Windows

agora.bat validator withdraw <folder>

'폴더'는 SignedBLSToExecutionChange 데이터가 저장되는 곳입니다. Linux/Mac 에서 기본 폴더는 ./bls_to_execution_changes입니다.

이렇게 하면 bls_to_execution_changes-*.json동기화된 Agora 노드의 Agora-cl API 끝점 호출에서 데이터를 추출하고 요청이 포함되었는지 확인합니다.

5단계: 제출 확인

성공적으로 제출되면 SignedBLStoExecutionChange메시지가 블록에 포함되기를 기다리는 풀에 포함됩니다.

agora.sh version 2.0.0
The selected network is 'devnet'
Default data folder is bls_to_execution_changes
INFO[0000] found JSON files for setting withdrawals: [/agora-chain/bls_to_execution_changes/bls_to_execution_changes/bls_to_execution_change-1687424246.json] 
SETTING VALIDATOR INDEX 39 TO WITHDRAWAL ADDRESS 0xc304a2abcb9f14677ce1ba9242637a3a053b2e3a
INFO[0000] Successfully published messages to update 1 withdrawal addresses. 
INFO[0000] Verifying requested withdrawal messages known to node... 
INFO[0000] There are a total of 1 messages known to the node's pool. 
INFO[0000] All (total:1) signed withdrawal messages were found in the pool. 

당신이 제공한 실행 주소를 사용하여 출금이 시작되고 검증자의 출금 자격 증명이 다음과 같이 변경됩니다.

*0x010000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b* 

당신이 선택한 BOA 주소를 확인 할 수 있습니다.

6단계: 인출확인

AgoraScan에서 인출을 추적할 수 있습니다. 아래에 나열된 몇 가지 예는 네트워크를 기반으로 합니다.

로컬 Agora-cl 노드에 withdrawal_credentials를조회하여 업데이트를 확인할 수도 있습니다 .

curl -X 'GET' \
  'http://YOUR_AGORA_NODE_HOST:3500/eth/v1/beacon/states/head/validators/YOUR_VALIDATOR_INDEX' \
  -H 'accept: application/json'

0x01BOA 실행 주소를 포함하는 형식 으로 변경되어야 하는 출금 자격 증명이 포함된 응답이 표시되어야 합니다 .

완료: withdrawal_credentials업데이트 후 부분 인출을 받는 것은 자동이지만 시간이 걸립니다 .

유효성 검사자의 withdrawal_credentials필드가 0x01접두사로 업데이트되면 모든 인출 작업이 완료됩니다. 40,000 BOA 이상의 리워드 인출은 블록 제안자가 블록에 검증자를 포함할 때 선택한 BOA 주소로 자동 전송됩니다.

최대 16명의 검증자들이 블록당 잔액을 인출할 수 있으므로 BOA 주소에 값이 표시되기까지 지연 시간이 달라질 수 있습니다.

옵션 2: 전체인출

검증자의 예치금을 모두 인출 하려면 인출자격증명을 변경 하는 것 외에도 검증자도 종료해야 합니다 .

유효성 검사기 종료 방법을 따르십시오 .

유효성 검사기의 출금 자격 증명을 변경하려면 위의 옵션1.부분 출금 지침을 참조하십시오.

!주의

withdrawal_credentials가 0x01접두사로 업데이트되면 출금 주소 설정 지침을 반복할 필요가 없습니다 .

완료: withdrawal_credentials가 업데이트되고 유효성 검사기가 완전히 종료된 후 전체 인출을 받는 것은 자동이지만 시간이 걸립니다 .

유효성 검증자가 종료되고 withdrawal_credentials접두사 가0x01 로 변경 되면 블록 제안자가 유효성 검증자를 블록에 포함할 때 유효성 검증자는 선택한 BOA 주소로 전체 잔액을 자동으로 인출합니다. 최대 16명의 검증자들이 블록당 잔액을 인출할 수 있으므로 BOA 주소에 값이 표시되기 전에 지연 시간이 다를 수 있습니다.

!주의

삭감되거나 비자발적으로 종료된 유효성 검사기는 여전히 나머지 잔액을 완전히 인출하기 위해 withdrawal_credentials업데이트 프로세스를 거쳐야 합니다 .

Last updated