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

时间:2017-12-18 11:20:09

标签: blockchain ethereum truffle

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

2 个答案:

答案 0 :(得分:0)

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

不一定是这种情况。

智能合约只是一个以Solidity编写的程序,位于以太坊区块链上,该程序可以根据您的需要随心所欲地执行任何操作。

即。我可以创建一个“智能合约”,它接收以太并收集它直到特定日期,此时它会将所有收集的以太网释放到指定的帐户。

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

“合同”的本质是参与的所有人都可以看到以太保证在此之前被锁定,并且保证会发布收集到该地址的内容 - 这是无法更改的。通过与合同互动,您基本上是“签字”,表示您同意合同所涉及的条款。

所以,在你的'hello world'合同的例子中,你可以将它部署到网络,此时任何希望运行该合同的人都可以查看它的作用,然后运行它以显示'hello world ”。

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

如果您希望限制某些特定人员使用的合同,您必须在合同上列出这些地址,并确保合同检查是否有人来电,如果他们来自指定的地址,如果不是,您可以还原哪些将发送给用户的消息说不允许他们运行该功能等。

答案 1 :(得分:0)

ContractName.deployed()应该提供合同实例,然后您可以在其上调用.address来获取地址。看起来那个人正在做什么。我认为他并不认为合同本身有一个地址,由他的钱包签名。

智能合约不仅仅是两方之间的合约,它是可以开采的以太坊区块链的可验证代码。它有一个地址,你从钱包里播放它。您正在呼叫的地址"来自" address是您部署的合同的地址。