链上质押DApp开发系统智能合约部署

115 阅读2分钟

  智能合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定地址。智能合约账户能够在彼此之间传递信息,进行图灵完备的运算。智能合约依靠被称作以太坊虚拟机(EVM)字节代码(以太坊特有的二进制格式)上的区块链运行。

  智能合约使用诸如Solidity等高级语言写成,链上质押DApp合约13z开4z77发z558,然后编译成字节代码上传到区块链上。

  智能合约开发流程大概有以下步骤:

  编写智能合约(如基于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);

  }