手把手教你領取 AVA 測試網獎勵|零基礎教程

本文是一篇 AVA 測試網運行的傻瓜教程,既然說是傻瓜教程,那就是針對編程零基礎的小白們了。要運行一個節點,很多人覺得需要一個服務器,看起來像這樣:

手把手教你領取 AVA 測試網獎勵|零基礎教程

或者是這樣

手把手教你領取 AVA 測試網獎勵|零基礎教程

但是對 AVA 來說,普通的計算機就已經能夠做節點了,畢竟是完全不同的底層設計(對,就是這麼牛 B)。那如何從 0 開始運行一個 AVA 節點呢?

你需要的是:一臺 Mac 電腦,Linux 大神請直接走攻略:https://docs.ava.network/

(P.S:Windows 選手可以選擇右上角退出,教程正在路上,下一期播出!)

首先,AVA 採用 Go 語言,因此我們先要在計算機裏面下載 Go 語言,登錄官網下載界面:https://golang.org/dl/

下拉找到 go1.13.11 找到紅線所示的包,點擊藍字下載

手把手教你領取 AVA 測試網獎勵|零基礎教程

把它下載下來。之後打開安裝,一路鼠標點擊直到安裝完成

這時候打開 Terminal

手把手教你領取 AVA 測試網獎勵|零基礎教程

輸入

    go version

你應該會得到這樣的反饋:

    go version go1.13.11 darwin/amd64

由於 Go 的一些代碼庫是被牆掉的,因此我們需要修改鏈接參數 Goproxy (可以查看網頁:https://goproxy.io/zh/

    go env -w GO111MODULE=on  
    go env -w GOPROXY=https://goproxy.io,direct

可以輸入

go env

查看,若發現 GOPROXY 一欄爲

    GOPROXY="https://goproxy.io,direct"

就是可以的,之後就暢通無阻

之後設置 GOPATH,也就是設置文件路徑

    export GOPATH=$HOME/go

可以用

    echo $GOPATH

查看,若顯示 (name 是你的電腦名)

    /Users/name/go

即可,之後就可以輸入

    go get -v -d github.com/ava-labs/gecko/...

若出現類似下面的情況,則可以考慮直接從 Github 上用 Git 下載

    package google.golang.org/grpc/health: unrecognized import path "google.golang.org/grpc/health" (https fetch: Get https://google.golang.org/grpc/health?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)  

Git 下載方式 (若上一步成功不需要考慮這個)

    git clone https://github.com/ava-labs/gecko.git

等待下載完成,接下來你的電腦裏就已經裝好了 AVA 的代碼,剩下的就是啓動!

進入文件夾:

    cd $GOPATH/hide/github.com/ava-labs/gecko

    git pull && bash ./scripts/build.sh

等待一會,等到出現 build successful 的時候,輸入:

    ./build/ava

若出現:

手把手教你領取 AVA 測試網獎勵|零基礎教程

恭喜,你已經在本地運行了 AVA 的節點,之後就需要等待一段時間的編譯,大概需要十幾分鍾時間。

若運行:

    curl -X POST --data '{  
        "jsonrpc":"2.0",  
        "id"     :2,  
        "method" :"avm.getBalance",  
        "params" :{  
            "address":"X-6cesTteH62Y5mLoDBUASaBvCXuL2AthL",  
            "assetID":"AVA"  
        }  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/X
    結果爲:  
    {  
        "jsonrpc":"2.0",  
        "id"     :2,  
        "result" :{  
            "balance": 0,  
            "utxoIDs":null  
        }  
    }

那麼就是編譯成功!若結果爲 404 則請繼續等待,或聯繫我們解決問題。

可以隨時使用 control + C 來關掉進程,若希望再次重啓,配置好 GOPATH,重新進入文件夾,再次 ./build/ava 即可。

這個時間我們可以做一些節點的準備,我們可以開始進行下一步:獲取 AVA Token

首先,創建自己的 KeyStore,在 YOUR USERNAME 和 YOUR PASSWORD 處填寫自己的用戶名和密碼,密碼需要大於 10 位數

    curl -X POST --data '{  
         "jsonrpc": "2.0",  
         "id": 1,  
         "method": "keystore.createUser",  
         "params": {  
             "username": "YOUR USERNAME HERE",  
             "password": "YOUR PASSWORD HERE"  
         }  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore

返回結果爲:

    {  
         "jsonrpc":"2.0",  
         "result":{"success":true},  
         "id":1  
    }

創建地址(username 和 password 填寫自己的地址):

    curl -X POST --data '{  
        "jsonrpc":"2.0",  
        "id"     :2,  
        "method" :"avm.createAddress",  
        "params" :{  
            "username":"YOUR USERNAME HERE",  
            "password":"YOUR PASSWORD HERE"  
        }  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X

返回結果爲:

    {  
        "jsonrpc":"2.0",  
        "id":2,  
        "result" :{  
            "address":"X-5TQr5hSAZ8ZKuSaYLg5sr4VwvcvwKZ1Mg"  
        }  
    }

address 是自己的地址。獲取地址,並且自己記錄好這個地址,以及之前創建 KeyStore 的信息。

之後用 AVA 的水龍頭中填寫自己的地址獲取測試代幣,可以用下面的指令看自己地址的餘額或者去瀏覽器查看。

水龍頭:https://faucet.ava.network/

區塊鏈瀏覽器:https://explorer.ava.network/

    curl -X POST --data '{  
        "jsonrpc":"2.0",  
        "id"     :3,  
        "method" :"avm.getBalance",  
        "params" :{  
            "address":"X-5TQr5hSAZ8ZKuSaYLg5sr4VwvcvwKZ1Mg",  
            "assetID"  :"AVA"  
        }  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X

然後我們就要在網絡裏搞事情了!

首先創建 P-Chain,也就是驗證者所在的鏈的地址:

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.createAccount",  
        "params": {  
            "username":"YOUR USERNAME HERE",  
            "password":"YOUR PASSWORD HERE"  
        },  
        "id": 1  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

得到的結果,address 處爲自己的 AVA P-chain 地址:

    {  
        "jsonrpc": "2.0",  
        "result": {  
            "address": "Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH"  
        },  
        "id": 1  
    }

既然是 PoS,那就要給地址打錢才能作爲合格的驗證者,填寫自己的地址、用戶名和密碼(注意後續操作都需要確認地址、用戶名和密碼都是自己創建的):

    curl -X POST --data '{  
        "jsonrpc":"2.0",  
        "id"     :1,  
        "method" :"avm.exportAVA",  
        "params" :{  
            "to":"Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH",  
            "amount": 10000,  
            "username":"YOUR USERNAME HERE",  
            "password":"YOUR PASSWORD HERE"  
        }  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X

這個操作會返回一個交易 ID,之後等待幾秒交易確認,或者在瀏覽器查看。下一步操作(也是倒數第二步),這是將節點引入 AVA 的操作:

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.importAVA",  
        "params": {  
            "username":"YOUR USERNAME HERE",  
            "password":"YOUR PASSWORD HERE",  
            "to":"Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH",  
            "payerNonce":1  
        },  
        "id": 1  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P

返回類似下面這樣:

    {  
        "jsonrpc": "2.0",  
        "result": {  
            "tx": "1117xBwcr5fo1Ch4umyzjYgnuoFhSwBHdMCam2wRe8SxcJJvQRKSmufXM8aSqKaDmX4TjvzPaUbSn33TAQsbZDhzcHEGviuthncY5VQfUJogyMoFGXUtu3M8NbwNhrYtmSRkFdmN4w933janKvJYKNnsDMvMkmasxrFj8fQxE6Ej8eyU2Jqj2gnTxU2WD3NusFNKmPfgJs8DRCWgYyJVodnGvT43hovggVaWHHD8yYi9WJ64pLCvtCcEYkQeEeA5NE8eTxPtWJrwSMTciHHVdHMpxdVAY6Ptr2rMcYSacr8TZzw59XJfbQT4R6DCsHYQAPJAUfDNeX2JuiBk9xonfKmGcJcGXwdJZ3QrvHHHfHCeuxqS13AfU"  
        },  
        "id": 1  
    }

發行交易

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.issueTx",  
        "params": {  
            "tx":"1117xBwcr5fo1Ch4umyzjYgnuoFhSwBHdMCam2wRe8SxcJJvQRKSmufXM8aSqKaDmX4TjvzPaUbSn33TAQsbZDhzcHEGviuthncY5VQfUJogyMoFGXUtu3M8NbwNhrYtmSRkFdmN4w933janKvJYKNnsDMvMkmasxrFj8fQxE6Ej8eyU2Jqj2gnTxU2WD3NusFNKmPfgJs8DRCWgYyJVodnGvT43hovggVaWHHD8yYi9WJ64pLCvtCcEYkQeEeA5NE8eTxPtWJrwSMTciHHVdHMpxdVAY6Ptr2rMcYSacr8TZzw59XJfbQT4R6DCsHYQAPJAUfDNeX2JuiBk9xonfKmGcJcGXwdJZ3QrvHHHfHCeuxqS13AfU"  
        },  
        "id": 1  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P

之後確認 P-Chain 上的 AVA 賬戶:

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.getAccount",  
        "params":{  
            "address":"Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH"  
        },  
        "id": 1  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P

返回結果類似下面這樣:

{
"jsonrpc":"2.0",
"result":{
"address":"Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH",
"nonce":"1",
"balance":"10000"
},
"id":1
}

最後一個步,運行 admin.getNodeID 驟獲得你的節點 ID:

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "admin.getNodeID",  
        "params":{},  
        "id": 1  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin

返回結果包含一個 nodeID,保存下來。

    {  
        "jsonrpc": "2.0",  
        "result": {  
            "nodeID": "ARCLrphAHZ28xZEBfUL7SVAmzkTZNe1LK"  
        },  
        "id": 1  
    }

之後創建一個成爲節點的交易,其中包含節點啓動時間、Staking 時長等等參數,

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.addDefaultSubnetValidator",  
        "params": {  
            "id":"ARCLrphAHZ28xZEBfUL7SVAmzkTZNe1LK",  
            "payerNonce":2,  
            "destination":"Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH",  
            "startTime":'$(date --date="10 minutes" +%s)',  
            "endTime":'$(date --date="2 days" +%s)',  
            "stakeAmount":10000  
        },  
        "id": 1  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

返回結果如下:

    {  
        "jsonrpc": "2.0",  
        "result": {  
            "unsignedTx": "111fRKBNoBhBfeGvBzvz6r9dZUKbEnUypM6tjiSyYrWM4ojSTuL2Syxv8cFLphtYaxdM1EA3Aj4yej8ABSfmjb9NMrtxQac9cnWwCER7GHSzFULB25hAtzGtJ8XhsrKcvtpAM8FwjRzg3Bg1q6V8GTKGMC219bYMETS48GMFGh4nts1Jsf246rjZ26r1Vyok8MdnoaxjQWR6cKq"  
        },  
        "id": 1  
    }

注意 id、destination 都是自己的 id 和地址,payerNonce 是改地址進行交易的 Nonce 次數,若沒有其他操作則爲 2,然後對這個交易簽名,將上述獲得的 unsighedTx :

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.sign",  
        "params": {  
            "tx":"111fRKBNoBhBfeGvBzvz6r9dZUKbEnUypM6tjiSyYrWM4ojSTuL2Syxv8cFLphtYaxdM1EA3Aj4yej8ABSfmjb9NMrtxQac9cnWwCER7GHSzFULB25hAtzGtJ8XhsrKcvtpAM8FwjRzg3Bg1q6V8GTKGMC219bYMETS48GMFGh4nts1Jsf246rjZ26r1Vyok8MdnoaxjQWR6cKq",  
            "signer":"Bg6e45gxCUTLXcfUuoy3go2U6V3bRZ5jH",  
            "username":"YOUR USERNAME HERE",  
            "password":"YOUR PASSWORD HERE"  
        },  
        "id": 2  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

返回結果如下,

    {  
        "jsonrpc": "2.0",  
        "result": {  
            "Tx": "111fRKBNoBhBfeGvBzvz6r9dZUKbEnUypM6tjiSyYrWM4ojSTuL2Syxv8cFLphtYaxdM1EA3Aj4yej8ABSfmjb9NMrtxQac9cnWwCER7GHSzFULB4RoAjStfe26qQxhS91KvCCX3WBLmpyvNXHzgWk3uJP45cPv15RHGymFboPUcxNTwGij1NgQpKPcL4YxcDnKvNjrcQzKiXAz"  
        },  
        "id": 2  
    }

向整個網絡發出這一筆交易,聲明你就是這個節點了:

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.issueTx",  
        "params": {  
            "tx":"111fRKBNoBhBfeGvBzvz6r9dZUKbEnUypM6tjiSyYrWM4ojSTuL2Syxv8cFLphtYaxdM1EA3Aj4yej8ABSfmjb9NMrtxQac9cnWwCER7GHSzFULB4RoAjStfe26qQxhS91KvCCX3WBLmpyvNXHzgWk3uJP45cPv15RHGymFboPUcxNTwGij1NgQpKPcL4YxcDnKvNjrcQzKiXAz"  
        },  
        "id": 3  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

這時候就已經成功了!由於之前設定了 startTime (開始驗證的時間),因此在交易發出之後,回到設定的時間開始正式成爲網絡的驗證者,可以通過 platform.getPendingValidators 查看:

    curl -X POST --data '{  
        "jsonrpc": "2.0",  
        "method": "platform.getPendingValidators",  
        "params": {},  
        "id": 4  
    }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

返回結果中包含我們的節點 id,說明運行成功, 正在等待開始驗證的時間(按照我們剛纔的設定是十分鐘之後開始驗證):

    {  
        "jsonrpc": "2.0",  
        "result": {  
            "validators": [  
                {  
                    "id": "ARCLrphAHZ28xZEBfUL7SVAmzkTZNe1LK",  
                    "startTime": "1584021450",  
                    "endtime": "1584121156",  
                    "stakeAmount": "10000",  
                }  
            ]  
        },  
        "id": 4  
    }

由於我們之前設定了 endTime,在 endTime 的時候節點會退出驗證,之後可以通過重複上述步驟再次參與驗證。根據經濟模型設計,運行時間越長獲得的代幣獎勵也會越高,在主網的時候需要注意哦。

一些鏈接:

官網:https://avalabs.org/cn

白皮書:https://avalabs.org/whitepapers

Twitter:https://twitter.com/avalabsofficial

開發者 Discord:https://discord.com/invite/ccc8vEP

GitHub:https://github.com/ava-labs

文檔:https://docs.avalabs.org/

AVA-X 加速計劃:https://www.avalabs.org/ava-x

水龍頭:https://faucet.ava.network/

區塊鏈瀏覽器:https://explorer.ava.network/

如果你有任何問題,歡迎來我們的 Discord 尋求幫助:https://discord.gg/ccc8vEP

進一步瞭解 AVA Labs,添加⛄️AVA Labs 小助手❄️,回覆「入羣」加入我們。

手把手教你領取 AVA 測試網獎勵|零基礎教程

手把手教你領取 AVA 測試網獎勵|零基礎教程

來源鏈接:mp.weixin.qq.com