Truffle架构入门

开发环境设置(Node.js/Turffle/Ethereum TestRPC)

node -v
npm -version
npm -g install truffle
npm install -g ganache-cli

初始化

mkdir Dapp
cd Dapp
mkdir truffle_test
cd truffle_test
truffle init

新Teminal:

ganache-cli

运行demo

git clone https://github.com/3of5of7/scoreboard.git
cd scoreboard
npm install lite-server --save-dev
npm run dev

使用一个智能合约,“存在以太坊(Ethereum)区块链上”

contracts/Users.sol

pragma solidity ^0.4.2;

/**
 * 用户合约
 **/
contract Users {

  // 结构体
  struct Participant {
      uint id;
      bytes32 name;
      uint point;
  }

  // 统计变量
  Participant[] public users;
  uint userCount;

  // 新增用户
  function addUser(bytes32 userName, uint userPoint) returns (uint userID, bool success) {
    userID = userCount++;

    Participant memory newUser;
    newUser.id = userID;
    newUser.name = userName;
    newUser.point = userPoint;

    users.push(newUser);
    return(userID, true);
  }

  // 用户列表
  function getUsers() constant returns (uint[], bytes32[], uint[]) {
    uint length = users.length;

    uint[] memory usersID = new uint[](length);
    bytes32[] memory userNames = new bytes32[](length);
    uint[] memory userPoints = new uint[](length);

    for (uint i = 0; i < users.length; i++) {
        Participant memory showUser;
        showUser = users[i];

        usersID[i] = showUser.id;
        userNames[i] = showUser.name;
        userPoints[i] = showUser.point;
    }
    return(usersID, userNames, userPoints);
  }

  // 为用户改变点数
  function plusFive(uint id) returns (bool success) {
    users[id].point = users[id].point + 5;
    return true;
  }

}

编译与迁移

migrations/2_initial_migration.js

var Users = artifacts.require("./Users.sol");

module.exports = function(deployer) {
  deployer.deploy(Users);
};
truffle compile
truffle migrate

数据交互

truffle console
truffle(development)> Users.abi //检查合约的ABI
truffle(development)> Users.address //合约在区块链(测试网络)的地址
truffle(development)> Users.deployed().then(function(instance){instance.addUser("john", 26)})
truffle(development)> Users.deployed().then(function(instance){return instance.users(0);})
truffle(development)> Users.deployed().then(function(instance){return instance.getUsers();})

 

转载于:https://my.oschina.net/beanho/blog/1649153

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值