阿凡达(Avata)泰山众筹系统开发部署技术
智能合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定地址。智能合约账户能够在彼此之间传递信息,进行图灵完备的运算。智能合约依靠被称作以太坊虚拟机(EVM)字节代码(以太坊特有的二进制格式)上的区块链运行。阿凡达泰山众筹系统开发询阿李:132 薇 4z77 电 z558,阿凡达泰山众筹开发搭建技术。
智能合约使用诸如 Solidity 等高级语言写成,然后编译成字节代码上传到区块链上。
智能合约开发流程大概有以下步骤:
编写智能合约(如基于 solidity)
测试智能合约,在测试网络或者私有链进行合约的功能测试
编译和发布合约,将合约部署到链上
操作合约,利用诸如 web3.js 等接口,通过访问智能合约的地址,来调用和操作智能合约。
结构示意图:
Solidity
Solidity 是一种语法类似 JavaScript 的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。
代码片段:
pragma solidity^0.4.22;
contract helloWorld{
function renderHelloWorld()public pure returns(string){
return'helloWorld';
}
}
ERC-20
最著名的智能合约,想必大家都听过,那就是 ERC20。ERC-20 是一种代币的标准协议,简单地说,任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括 MIST、imToken 等),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。
一个基于 ERC-20 的代币包含以下接口:
contract ERC20Interface{
function totalSupply()public constant returns(uint);
function balanceOf(address tokenOwner)public constant returns(uint balance);
function allowance(address tokenOwner,address spender)public constant returns(uint remaining);
function transfer(address to,uint tokens)public returns(bool success);
function approve(address spender,uint tokens)public returns(bool success);
function transferFrom(address from,address to,uint tokens)public returns(bool success);
event Transfer(address indexed from,address indexed to,uint tokens);
event Approval(address indexed tokenOwner,address indexed spender,uint tokens);
}
评论