从外部调用以太坊智能合约功能的最常见方式?
Most common way to call the functions of an Ethereum smart contract externally?
我正在使用以 Solidity 编写的以太坊智能合约创建 DApp。
我想与合约进行交互,并向 P2P 游戏的获胜者支付代币。为了简单起见,游戏可以是剪刀石头布。见证人将主持比赛,并向合同发送电话以支付给获胜者。
假设我们有两个玩家:player 1
有一个带有 public 密钥的以太坊钱包 a1b2c3d4e5
(本轮获胜者)
player 2
有一个 public 键 f6g7h8i9j0
(本轮的失败者)
见证人如何从游戏端访问我的 Solidity 智能合约中支付 player 1
的功能?
您可以使用 embark framework 构建去中心化 HTML5 与以太坊区块链交互的应用程序。
Embark 包含一个测试库,可以快速 运行 并在 EVM(以太坊虚拟机)中测试您的合约。
Embark 支持 IPFS。
您可以创建智能合约,例如:
pragma solidity ^0.4.7;
contract SimpleStorage {
uint public storedData;
function SimpleStorage(uint initialValue) {
storedData = initialValue;
}
function set(uint x) {
storedData = x;
}
function get() constant returns (uint retVal) {
return storedData;
}
}
事件可能会像这样从 JS 框架中触发
myContract.eventName({from: web3.eth.accounts}, 'latest')
.then(function(event) { console.log(event) });
通过IPFS连接的通信是这样的
//set yourself as the ipfs provider
EmbarkJS.Messages.setProvider('orbit', {server: 'localhost', port: 5001})
EmbarkJS.Messages.sendMessage({topic: "sometopic", data: 'hello world'})
我正在使用以 Solidity 编写的以太坊智能合约创建 DApp。
我想与合约进行交互,并向 P2P 游戏的获胜者支付代币。为了简单起见,游戏可以是剪刀石头布。见证人将主持比赛,并向合同发送电话以支付给获胜者。
假设我们有两个玩家:player 1
有一个带有 public 密钥的以太坊钱包 a1b2c3d4e5
(本轮获胜者)
player 2
有一个 public 键 f6g7h8i9j0
(本轮的失败者)
见证人如何从游戏端访问我的 Solidity 智能合约中支付 player 1
的功能?
您可以使用 embark framework 构建去中心化 HTML5 与以太坊区块链交互的应用程序。
Embark 包含一个测试库,可以快速 运行 并在 EVM(以太坊虚拟机)中测试您的合约。
Embark 支持 IPFS。
您可以创建智能合约,例如:
pragma solidity ^0.4.7;
contract SimpleStorage {
uint public storedData;
function SimpleStorage(uint initialValue) {
storedData = initialValue;
}
function set(uint x) {
storedData = x;
}
function get() constant returns (uint retVal) {
return storedData;
}
}
事件可能会像这样从 JS 框架中触发
myContract.eventName({from: web3.eth.accounts}, 'latest')
.then(function(event) { console.log(event) });
通过IPFS连接的通信是这样的
//set yourself as the ipfs provider
EmbarkJS.Messages.setProvider('orbit', {server: 'localhost', port: 5001})
EmbarkJS.Messages.sendMessage({topic: "sometopic", data: 'hello world'})