繁体   English   中英

区块链以太坊中的智能合约

[英]Smart contract in blockchain ethereum

我正在尝试使用 testrpc 和 truffle 部署智能合约。 我的智能合约就像 HelloWorld 一样简单。 使用 0xfd52dd6fd4002b86ccbd3ae7c7a3e1a9d16c3648 这个地址成功部署了合约。 我唯一不明白的一点是,合同应该涉及两方。 当我运行这个命令HelloWorld.deployed() ,我只能地址获取。 我想要两个参数,即FROM & TO 我的问题是如何在以太坊签订合同时包含TO参数?

智能合约不一定是您所考虑的条款中的合约。 我假设您正在想象一份合同,其中两方同意某事,并且存储在区块链上作为证据?

情况并非一定如此。

智能合约只是一个用 Solidity 编写的程序,它位于以太坊区块链上,该程序可以为任意数量的人做任何您想做的事情。

即我可以创建一个“智能合约”,它接收以太币并在特定日期之前收集它,届时它将把所有收集的以太币释放到指定帐户。

这不必由任何人“签署”,任何数量的参与者都可以将以太币存入该合约,直到特定日期为止,其他人无法存入。

“合约”的本质是每个参与的人都可以看到以太保证在那个时间之前被锁定,并且保证将收集到的东西释放到那个地址——这是无法改变的。 通过与合同互动,您实质上是在“签署”以表示您同意合同所涉及的条款。

因此,在您的“hello world”合约示例中,您可以将其部署到网络,此时任何希望运行该合约的人都可以检查它的作用,然后运行它以显示“hello world”。

因此,您列出了一个“发件人”地址来指定它的来源,但“收件人”地址是不必要的,因为任何人都可以看到它/与之交互。

如果你想限制某些特定的人使用合约,你必须在合约上列出这些地址,并确保合约在有人打电话时检查他们是否来自指定的地址,如果不是你可以恢复,这将发送消息给用户说他们不允许运行该功能等。

ContractName.deployed()应该给出合约实例,然后你可以调用.address来获取地址。 看起来这就是这家伙正在做的事情。 我认为他并没有认为合同本身有一个地址,由他的钱包签名。

智能合约不仅仅是两方之间的合约,它还是以太坊区块链上可以被挖掘的一段可验证的代码。 它有一个地址,你正在从你的钱包中广播它。 您调用“来自”地址的地址是您部署的合约的地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM