当前位置:首页 > 物联网 > 区块链
[导读] 在部署运行Chainlink节点预言机合约的过程中,会涉及到很多的地址与账户,今天我们就来解释一下这些地址和账户分别的做什么用的。 合约相关 首先介绍一下以太坊账户相关的基础知识

在部署运行Chainlink节点预言机合约的过程中,会涉及到很多的地址与账户,今天我们就来解释一下这些地址和账户分别的做什么用的。

合约相关

首先介绍一下以太坊账户相关的基础知识。

我们知道,以太坊上的账户分为外部账户(EOA, externally owned accounts)和合约账户(CA, contract accounts),外部账户就是我们普通用户掌握私钥的账户,可以用来存储、转账代币,也可以用来创建部署智能合约。在创建智能合约之后,合约也会拥有一个地址,这个地址和外部账户的地址在形式上没有区别(都是0x开头的16进制字符串),但是合约账户没有私钥,它通过外部账户提交transaction的方式去调用。虽然合约账户没有私钥,但是合约账户却可以持有资金,它的资金和一些重要的权限操作可以被其拥有者owner所控制。一般来说,owner是创建合约的外部账户,但是owner也可以被最初的创建者转移给其他账户。

我们在部署节点的时候,都会部署一个代表我们节点在链上执行request和fulfill的oracle合约。我们部署合约所用到的外部账户,其私钥必须妥善保管,因为它对于oracle合约有强有力的控制权,可以设置节点调用的权限,更重要的是它可以控制合约账户所持有的资金,具体来说就是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(所有者)才能调用的。其中withdraw方法,可以理解为一个提币的方法,它将合约账户持有的LINK token转移到其他账户。所以owner账户非常重要,一定要妥善保管。

节点相关

我们在按照文档https://docs.chain.link/docs/running-a-chainlink-node部署节点的时候,也会遇到很多账户。我们以docker方式启动为例,介绍一下这些账户的作用。

节点拥有一个以太坊的外部账户,这个账户会持有一定数量的ETH,用于提交调用oracle合约的事务时支付以太坊网络的交易费用。这个账户是在初次启动chainlink的实例的时候生成的。

我们在第一次启动chainlink示例的时候,比如在执行

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

命令之后,首先会要求我们输入两遍密码(输入和确认),这个密码其实就是节点所拥有的以太账户的keystore的passphrase,必须要牢记,如果丢失了无法找回。

如果我们想把节点的账户地址上的ETH提出来应该怎么操作呢。我们需要找到这个keystore。如果你是按照官方文档的方式创建的节点,keystore会保存在你的节点所在的服务器的~/.chainlink/tempkey目录下(即Chainlink节点运行的主目录下的tempkey目录,请跟据自己节点的部署情况更改路径)。需要注意想要查看keystore内容需要你有服务器的sudo权限。拿到keystore后,就可以在你喜欢的以太坊钱包上用上面提到的密码导入了。

第一次启动chainlink示例的时候,在输入keystore的密钥之后,还会要求你输入一个账户和密码,这个账户密码是chainlink提供的web管理界面的登录用户名密码。这个账户的密码可以按照这篇文档提供的方式来修改。https://docs.chain.link/docs/miscellaneous#section-change-your-api-password

总结

本文我们介绍了Chainlink节点运营相关的4个账户,分别是

· 部署合约的外部账户:用于部署Oracle合约,默认情况下是Oracle合约的Owner(所有者),掌管着账户本身的资金和Oracle合约所持有的资金

· Oracle合约账户:没有私钥,其持有的资金,以及合约的一些重要方法,受其Owner控制

· 节点所持有的外部账户:持有部分ETH,用于在提交完成请求的事务时支付交易费用,可以在需要时将其账户持有资金提出。
来源: Chainlink资讯 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭