2

我有两个合同说 A 和 B,两个节点在不同的机器 Machine1 和 Machine 2 上运行,具有相同的网络 ID,我使用节点 url 添加了对等点。合约A由机器1部署在区块链上,合约B由机器2部署。现在我想从机器2和机器1访问合约A的功能,并从机器2和机器1访问合约B的功能。我如何访问这些功能

4

2 回答 2

2

以太坊区块链是一个分布式应用平台。这意味着合约代码不会部署到特定节点;相反,它被部署到分布式账本中,每个节点都有一份副本(假设每个节点都与网络的其余部分达成共识)。同样,当您调用合约的函数时,函数调用至少会在网络中那些正在积极挖掘(验证交易)的节点上执行。

通过向网络广播交易来创建合约。已部署合约上的函数也通过广播交易来调用。

准备创建合约的交易会返回合约的地址。该地址引用了合约在区块链上的唯一位置;记录下来。当您将该交易发送到区块链时,等待当前区块被挖掘。一旦发生这种情况,所有节点都应该在几毫秒内拥有一份代码副本,然后可以处理调用该合约中函数的事务。

创建合约后,准备另一个调用函数的交易,将您之前记录的合约地址作为交易的接收者。然后,将此交易广播到网络。哪个节点先收到交易并不重要。最终,在交易被挖掘后不久,网络中的所有节点都将拥有区块链的更新状态,该状态反映了函数调用导致的任何更改。

于 2015-10-20T10:52:06.493 回答
1

要生成 Abi,请转到https://etherchain.org/solc并放置您的合约代码并获取 abi

使用 var contract = eth.contract(abi).at(contractaddress)

将 abi 和 address 替换为合约的 ABI 和地址。

这将允许您访问合同。

于 2015-10-08T07:07:06.917 回答