<dd id="saiiy"></dd>
  1. <s id="saiiy"></s>

    1. <s id="saiiy"></s>
      1. <span id="saiiy"><blockquote id="saiiy"></blockquote></span>

        區塊鏈:雷電網(wǎng)絡(luò )開(kāi)發(fā)預覽版x

        發(fā)布時(shí)間:2025-05-24 08:59:04   來(lái)源:黨團工作    點(diǎn)擊:   
        字號:

         區塊鏈:雷電網(wǎng)絡(luò )開(kāi)發(fā)預覽版 • 雷電網(wǎng)絡(luò )開(kāi)發(fā)預覽版-初體驗 – Raiden 環(huán)境搭建 1下載 Raiden 執行文件 2安裝 Parity 客戶(hù)端 3準備賬號 4啟動(dòng) Parity 同步 ropsten 測試網(wǎng)絡(luò ) 5在 Ropsten 給賬號增加以太 balance 6啟動(dòng) Raiden • 7. 檢查是否運行正常 – 節點(diǎn)交互 1調用 RTT 合約轉賬給 A、B 賬戶(hù)使其先擁有 RTT 余額 2A、B 節點(diǎn)自動(dòng)連接 RTT network(可選)

         3與 B 建立直接的狀態(tài)通道 4A 節點(diǎn)查看狀態(tài)通道信息 5向狀態(tài)通道 deposit(可選)

         6A 向 B 節點(diǎn) 發(fā)起 RTT 轉賬 1 7查詢(xún)通道的事件信息 8關(guān)閉狀態(tài)通道 • 9. 節點(diǎn)離開(kāi) RTT network(可選)

         – 其他 以下內容在 ubuntu 機器 ,Ropsten 測試網(wǎng)絡(luò )實(shí)測 ok。

         注意:隨著(zhù) Raiden 開(kāi)發(fā)的不斷推進(jìn),本文內容有可能不適用未來(lái)最新版本

         Raiden 環(huán)境搭建 1. 下載 Raiden 執行文件 wget https://github.com/raiden-network/raiden/releases/download/v0.1.0/raiden--x86_64.AppImage

         mv raiden--x86_64.AppImage raiden

         chmod +x raiden

         2. 安裝 Parity 客戶(hù)端 wget https://parity-downloads-mirror.parity.io/v1.7.6/x86_64-unknown-linux-gnu/parity_1.7.6_amd64.deb

         dpkg -i parity_1.7.6_amd64.deb

         3. 準備賬號 parity account new --chain ropsten --keys-path ~/.local/share/io.parity.ethereum/keys/ethereum/

         新建兩個(gè) eth 賬戶(hù)。Raiden 節點(diǎn)使用 eth 地址來(lái)標識。

         下文假設 A 賬戶(hù)為 0x607f1724469a0beeed74e1429c3c5adcf8290fa3,B 賬戶(hù)為0x17cb47f30f844b6969e8cc6cd3c506eb25f17819。

         4. 啟動(dòng) Parity 同步 ropsten 測試網(wǎng)絡(luò ) #parity db kill --chain ropsten

         parity --geth --keys-path ~/.local/share/io.parity.ethereum/keys/ethereum/ --chain ropsten --bootnodes "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303"

         parity 默認已開(kāi)啟 Warp sync。等待網(wǎng)絡(luò )同步完成再執行后面的操作。否則 raiden啟動(dòng)的時(shí)候會(huì )報 Raiden 的 Registry 合約無(wú)法找到的錯誤。

         5. 在 在 Ropsten 給賬號增加以太 balance 因為 raiden 中加入網(wǎng)絡(luò )和建立通道都需要發(fā)送交易,所以要求對應賬戶(hù)的 eth 余額不能為 0。

         打開(kāi) http://faucet.ropsten.be:3001/ 給 4 中的賬戶(hù)發(fā)送 ether。

         6. 啟動(dòng) Raiden 配置不同的端口,啟動(dòng)兩個(gè)節點(diǎn):

         ./raiden --keystore-path ~/.local/share/io.parity.ethereum/keys/ethereum/test/ --api-address 0.0.0.0:9545 --listen-address 0.0.0.0:4001

          ./raiden --keystore-path ~/.local/share/io.parity.ethereum/keys/ethereum/test/ --api-address 0.0.0.0:9546 --listen-address 0.0.0.0:4002

         選擇不同的賬戶(hù),并輸入密碼解鎖。

         正常啟動(dòng)情況下會(huì )輸出 API 端口信息。

         后面與 Raiden 都是通過(guò) Restful API 來(lái)交互。

         7. 檢查是否運行正常 curl http://127.0.0.1:9545/api/1/address

         #返回 {"our_address": "0x607f1724469a0beeed74e1429c3c5adcf8290fa3"}

          curl http://127.0.0.1:9546/api/1/address

         #返回 {"our_address": "0x17cb47f30f844b6969e8cc6cd3c506eb25f17819"}

         輸出的地址與啟動(dòng)時(shí)候所選擇的賬戶(hù)地址一致,則已正常運行。

         至此,兩個(gè)節點(diǎn)的 Raiden 環(huán)境已經(jīng)搭建起來(lái)了。

         節點(diǎn)交互 通過(guò) API 可以向網(wǎng)絡(luò )注冊新的 Token Network,也可以直接接入一個(gè)已注冊的Token Network,可以與其他 Raiden 節點(diǎn)建立 Channel 并 Deposit 到 Channel,還有其他的一些相關(guān)操作。詳細可以看 Raiden 的 API 說(shuō)明 。

         Raiden 提供了一個(gè)已注冊好的 Raiden Testnet Token (RTT)。RTT 地址是0x0f114a1e9db192502e7856309cc899952b3db1ed 。

         下面的內容是對部分 API 的簡(jiǎn)單體驗過(guò)程。

         1. 調用 RTT 合約轉賬給 A 、B 賬戶(hù)使其先擁有 RTT 余額 使用 web3.js 調用以下代碼發(fā)起賬戶(hù)轉賬 RTT 代幣?的交易。注意調用之前先解鎖賬戶(hù)。

         var addr="0x607f1724469a0beeed74e1429c3c5adcf8290fa3";#改成自己的賬戶(hù)地址

         var rtt_token_abi = Contract ABI; #可以從 https://ropsten.etherscan.io/address/0x0f114a1e9db192502e7856309cc899952b3db1ed#code 獲取

         var rtt_token_address = "0x0f114a1e9db192502e7856309cc899952b3db1ed";

         var rtt_token = web3.eth.contract(rtt_token_abi).at(rtt_token_address);

         rtt_token.mint({from:addr}); // adjust to your raiden account and unlock first!

          console.log(rtt_token.balanceOf(addr).toString());

         每調用一次,RTT 增加 100。調用完之后,可以在https://ropsten.etherscan.io/address/賬戶(hù)地址 查看交易狀態(tài)。如果交易上鏈了,賬戶(hù)的 RTT 代幣余額就會(huì )增加,可以多調幾次,使得余額充足,方便后面的通道轉賬。

         2. A 、B 節點(diǎn)自動(dòng)連接 RTT network (可選)

         #對 A 節點(diǎn)

         curl -X PUT -H "Content-Type: application/json" -d "{"funds":100}" http://127.0.0.1:9545/api/1/connection/0x0f114a1e9db192502e7856309cc899952b3db1ed

          #對 B 節點(diǎn)

         curl -X PUT -H "Content-Type: application/json" -d "{"funds":100}" http://127.0.0.1:9546/api/1/connection/0x0f114a1e9db192502e7856309cc899952b3db1ed

         正常情況下輸出狀態(tài)變更事件消息:

         INFO:raiden.network.rpc.client

         new_netting_channel called peer1=a6c07564 netting_channel=4b644413 peer2=0f658429

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveNewChannel object at 0x7fa497756bd0>

         INFO:raiden.network.rpc.client

         deposit called amount=400 contract=4b644413

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveBalance object at 0x7fa497706f10>

         INFO:raiden.network.rpc.client

         new_netting_channel called peer1=a6c07564 netting_channel=ea955179 peer2=9598decb

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveNewChannel object at 0x7fa497706ad0>

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveBalance object at 0x7fa497730890>

         INFO:raiden.network.rpc.client

         deposit called amount=400 contract=ea955179

         ERROR:raiden.tasks

         alarm missed 1 blocks

         ERROR:raiden.tasks

         alarm missed 2 blocks

         INFO:raiden.network.rpc.client

         new_netting_channel called peer1=a6c07564 netting_channel=7c2bfbda peer2=82710a71

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveNewChannel object at 0x7fa497730f90>

         INFO:raiden.network.rpc.client

         deposit called amount=400 contract=7c2bfbda

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveBalance object at 0x7fa49773c1d0>

         每個(gè)節點(diǎn)執行成功之后,節點(diǎn)就會(huì )自動(dòng)加入 RTT network 并且與其他三個(gè)隨機的節點(diǎn)建立狀態(tài)通道,并且每個(gè) channel 會(huì ) deposit 20%的 funds,剩余的 40%funds留給新加進(jìn)來(lái)的節點(diǎn)來(lái)建立狀態(tài)通道。

         如果是 RTT 余額不足,Raiden 客戶(hù)端會(huì )提示:

         INFO:raiden.network.rpc.client

         new_netting_channel called peer1=1fb444d0 netting_channel=fd0a1d0e peer2=82710a71

         3. A 與 與 B 建立直接的狀態(tài)通道 curl -X PUT -H "Content-Type: application/json" -d "{"partner_address": "0x17cb47f30f844b6969e8cc6cd3c506eb25f17819","token_address": "0x0f114a1e9db192502e7856309cc899952b3db1ed","balance": 100,"settle_timeout": 600}" http://127.0.0.1:9545/api/1/channels

         其中 partner_address 是節點(diǎn)地址,即 B 節點(diǎn)地址,token_address 是 token 地址,即 RTT 的地址。

         正常建立情況下會(huì )有類(lèi)似提示:

         INFO:raiden.event_handler

          state_change received state_change=<raiden.transfer.mediated_transfer.state_change.ContractReceiveNewChannel object at 0x7f7f1ed34e50>

         INFO:raiden.network.rpc.client

         deposit called amount=100 contract=721d03ec

         4. A 節點(diǎn)查看狀態(tài) 通道信息 curl -X GET http://127.0.0.1:9545/api/1/channels

         返回:

         [

         {

         "balance": 100,

         "channel_address": "0x721d03ec76ccbfdce0ad3fc4602b59d622304d25",

         "partner_address": "0x17cb47f30f844b6969e8cc6cd3c506eb25f17819",

         "reveal_timeout": 10,

         "settle_timeout": 600,

         "state": "opened",

         "token_address": "0x0f114a1e9db192502e7856309cc899952b3db1ed"

         }

         ]

          curl -X GET http://127.0.0.1:9546/api/1/channels

         返回:

         [

         {

         "balance": 0,

         "channel_address": "0x504750b7b1e0940119f3d0bad11e2fc766ab97a1",

         "partner_address": "0x0c599ace7e0a7ff7c0ce6ba1c50f35ec58c04e86",

         "reveal_timeout": 10,

         "settle_timeout": 400,

         "state": "opened",

         "token_address": "0x0f114a1e9db192502e7856309cc899952b3db1ed"

         }

         ]

         從返回可以看出,state 為 opened,狀態(tài)通道中 A 余額為 100,B 余額為 0。

         5. 向狀態(tài)通道 deposit (可選)

         從 4 中可以看到 B 和 A 節點(diǎn)的狀態(tài)通道的 balance。也可以 deposit。

         curl -X PATCH -H "Content-Type: application/json" -d "{"balance":50}" http://127.0.0.1:9545/api/1/channels/0x721d03ec76ccbfdce0ad3fc4602b59d622304d25 #注意是 channel_address

          6. A 向 向 B 節點(diǎn) 發(fā)起 RTT 轉賬 1 curl -H "Content-Type:application/json" -X POST --data "{"amount":1}" http://127.0.0.1:9545/api/1/transfers/0x0f114a1e9db192502e7856309cc899952b3db1ed/0x17cb47f30f844b6969e8cc6cd3c506eb25f17819# 節點(diǎn)地址

         返回:

         {

         "amount": 1,

         "identifier": 6913515701748887592,

         "initiator_address": "0x607f1724469a0beeed74e1429c3c5adcf8290fa3",

         "target_address": "0x17cb47f30f844b6969e8cc6cd3c506eb25f17819",

         "token_address": "0x0f114a1e9db192502e7856309cc899952b3db1ed"

         }

         轉賬成功。

         此時(shí)再次查詢(xún)狀態(tài)通道信息 curl -X GET http://127.0.0.1:9545/api/1/channels

         [

         {

         "balance": 99,

         "channel_address": "0x721d03ec76ccbfdce0ad3fc4602b59d622304d25",

         "partner_address": "0x17cb47f30f844b6969e8cc6cd3c506eb25f17819",

         "reveal_timeout": 10,

         "settle_timeout": 600,

         "state": "opened",

         "token_address": "0x0f114a1e9db192502e7856309cc899952b3db1ed"

         }

         ]

          curl -X GET http://127.0.0.1:9546/api/1/channels

         [

         {

         "balance": 1,

         "channel_address": "0x721d03ec76ccbfdce0ad3fc4602b59d622304d25",

         "partner_address": "0x607f1724469a0beeed74e1429c3c5adcf8290fa3",

         "reveal_timeout": 10,

         "settle_timeout": 600,

         "state": "opened",

         "token_address": "0x0f114a1e9db192502e7856309cc899952b3db1ed"

         }

         ]

         從返回可以看出,狀態(tài)通道中 A 余額為 99,B 余額為 1。

         7. 查詢(xún)通道的事件信息 curl -X GET http://127.0.0.1:9545/api/1/events/channels/0x721d03ec76ccbfdce0ad3fc4602b59d622304d25#狀態(tài)通道地址

          返回

         [{"block_number": 1892761, "participant": "607f1724469a0beeed74e1429c3c5adcf8290fa3", "event_type": "ChannelNewBalance", "balance": 100, "token_address": "0f114a1e9db192502e7856309cc899952b3db1ed"}, {"block_number": 1892768, "participant": "607f1724469a0beeed74e1429c3c5adcf8290fa3", "event_type": "ChannelNewBalance", "balance": 600, "token_address": "0f114a1e9db192502e7856309cc899952b3db1ed"}, {"block_number": 1892781, "participant": "607f1724469a0beeed74e1429c3c5adcf8290fa3", "event_type": "ChannelNewBalance", "balance": 650, "token_address": "0f114a1e9db192502e7856309cc899952b3db1ed"}, {"block_number": 1892786, "event_type": "EventTransferSentSuccess", "identifier": 6913515701748887592}]

         會(huì )看到狀態(tài)通道所有的事件消息。

         8. 關(guān)閉狀態(tài)通道 curl -X PATCH -H "Content-Type: application/json" -d "{"state":"closed"}" http://127.0.0.1:9545/api/1/channels/0x721d03ec76ccbfdce0ad3fc4602b59d622304d25 #注意是 channel_address

         此時(shí)再次查詢(xún)狀態(tài)通道信息 curl -X GET http://127.0.0.1:9545/api/1/channels

          9. 節點(diǎn)離開(kāi) RTT network (可選)

         curl -X "DELETE" -H "Content-Type: application/json" -d "{"only_receiving_channels": false}" http://127.0.0.1:9546/api/1/connection/0x0f114a1e9db192502e7856309cc899952b3db1ed

         其他 為了簡(jiǎn)化測試體驗,Raiden 提供了一個(gè)特殊的 Raiden Echo Node。Raiden Echo Node 地址是 0x02f4b6bc65561a792836212ebc54434db0ab759a 。體驗過(guò)程可以只建立一個(gè)節點(diǎn)與 Raiden Echo Node 交互。

        国产另类无码专区|日本教师强伦姧在线观|看纯日姘一级毛片|91久久夜色精品国产按摩|337p日本欧洲亚洲大胆精

        <dd id="saiiy"></dd>
        1. <s id="saiiy"></s>

          1. <s id="saiiy"></s>
            1. <span id="saiiy"><blockquote id="saiiy"></blockquote></span>