當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 在部署運行Chainlink節(jié)點預(yù)言機(jī)合約的過程中,會涉及到很多的地址與賬戶,今天我們就來解釋一下這些地址和賬戶分別的做什么用的。 合約相關(guān) 首先介紹一下以太坊賬戶相關(guān)的基礎(chǔ)知識

在部署運行Chainlink節(jié)點預(yù)言機(jī)合約的過程中,會涉及到很多的地址與賬戶,今天我們就來解釋一下這些地址和賬戶分別的做什么用的。

合約相關(guān)

首先介紹一下以太坊賬戶相關(guān)的基礎(chǔ)知識。

我們知道,以太坊上的賬戶分為外部賬戶(EOA, externally owned accounts)和合約賬戶(CA, contract accounts),外部賬戶就是我們普通用戶掌握私鑰的賬戶,可以用來存儲、轉(zhuǎn)賬代幣,也可以用來創(chuàng)建部署智能合約。在創(chuàng)建智能合約之后,合約也會擁有一個地址,這個地址和外部賬戶的地址在形式上沒有區(qū)別(都是0x開頭的16進(jìn)制字符串),但是合約賬戶沒有私鑰,它通過外部賬戶提交transaction的方式去調(diào)用。雖然合約賬戶沒有私鑰,但是合約賬戶卻可以持有資金,它的資金和一些重要的權(quán)限操作可以被其擁有者owner所控制。一般來說,owner是創(chuàng)建合約的外部賬戶,但是owner也可以被最初的創(chuàng)建者轉(zhuǎn)移給其他賬戶。

我們在部署節(jié)點的時候,都會部署一個代表我們節(jié)點在鏈上執(zhí)行request和fulfill的oracle合約。我們部署合約所用到的外部賬戶,其私鑰必須妥善保管,因為它對于oracle合約有強(qiáng)有力的控制權(quán),可以設(shè)置節(jié)點調(diào)用的權(quán)限,更重要的是它可以控制合約賬戶所持有的資金,具體來說就是LINK token。

我們可以看這個oracle合約中

/**

* @noTIce Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.

* @param _node The address of the Chainlink node

* @param _allowed Bool value to determine if the node can fulfill requests

*/

funcTIon setFulfillmentPermission(address _node, bool _allowed) external onlyOwner {

authorizedNodes[_node] = _allowed;

}

/**

* @noTIce Allows the node operator to withdraw earned LINK to a given address

* @dev The owner of the contract can be another wallet and does not have to be a Chainlink node

* @param _recipient The address to send the LINK token to

* @param _amount The amount to send (specified in wei)

*/

funcTIon withdraw(address _recipient, uint256 _amount)

external

onlyOwner

hasAvailableFunds(_amount)

{

withdrawableTokens = withdrawableTokens.sub(_amount);

assert(LinkToken.transfer(_recipient, _amount));

}

/**

* @notice Displays the amount of LINK that is available for the node operator to withdraw

* @dev We use `ONE_FOR_CONSISTENT_GAS_COST` in place of 0 in storage

* @return The amount of withdrawable LINK on the contract

*/

function withdrawable() external view onlyOwner returns (uint256) {

return withdrawableTokens.sub(ONE_FOR_CONSISTENT_GAS_COST);

}

source: https://github.com/smartcontractkit/chainlink/blob/develop/evm/contracts/Oracle.sol#L187

setFulfillmentPermission、withdraw、withdrawable三個方法都是只有owner(所有者)才能調(diào)用的。其中withdraw方法,可以理解為一個提幣的方法,它將合約賬戶持有的LINK token轉(zhuǎn)移到其他賬戶。所以owner賬戶非常重要,一定要妥善保管。

節(jié)點相關(guān)

我們在按照文檔https://docs.chain.link/docs/running-a-chainlink-node部署節(jié)點的時候,也會遇到很多賬戶。我們以docker方式啟動為例,介紹一下這些賬戶的作用。

節(jié)點擁有一個以太坊的外部賬戶,這個賬戶會持有一定數(shù)量的ETH,用于提交調(diào)用oracle合約的事務(wù)時支付以太坊網(wǎng)絡(luò)的交易費用。這個賬戶是在初次啟動chainlink的實例的時候生成的。

我們在第一次啟動chainlink示例的時候,比如在執(zhí)行

cd ~/.chainlink-ropsten && docker run -p 6688:6688 -v ~/.chainlink-ropsten:/chainlink -it --env-file=.env smartcontract/chainlink local n

命令之后,首先會要求我們輸入兩遍密碼(輸入和確認(rèn)),這個密碼其實就是節(jié)點所擁有的以太賬戶的keystore的passphrase,必須要牢記,如果丟失了無法找回。

如果我們想把節(jié)點的賬戶地址上的ETH提出來應(yīng)該怎么操作呢。我們需要找到這個keystore。如果你是按照官方文檔的方式創(chuàng)建的節(jié)點,keystore會保存在你的節(jié)點所在的服務(wù)器的~/.chainlink/tempkey目錄下(即Chainlink節(jié)點運行的主目錄下的tempkey目錄,請跟據(jù)自己節(jié)點的部署情況更改路徑)。需要注意想要查看keystore內(nèi)容需要你有服務(wù)器的sudo權(quán)限。拿到keystore后,就可以在你喜歡的以太坊錢包上用上面提到的密碼導(dǎo)入了。

第一次啟動chainlink示例的時候,在輸入keystore的密鑰之后,還會要求你輸入一個賬戶和密碼,這個賬戶密碼是chainlink提供的web管理界面的登錄用戶名密碼。這個賬戶的密碼可以按照這篇文檔提供的方式來修改。https://docs.chain.link/docs/miscellaneous#section-change-your-api-password

總結(jié)

本文我們介紹了Chainlink節(jié)點運營相關(guān)的4個賬戶,分別是

· 部署合約的外部賬戶:用于部署Oracle合約,默認(rèn)情況下是Oracle合約的Owner(所有者),掌管著賬戶本身的資金和Oracle合約所持有的資金

· Oracle合約賬戶:沒有私鑰,其持有的資金,以及合約的一些重要方法,受其Owner控制

· 節(jié)點所持有的外部賬戶:持有部分ETH,用于在提交完成請求的事務(wù)時支付交易費用,可以在需要時將其賬戶持有資金提出。
來源: Chainlink資訊?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉