涛子 - 简单就是美

成单纯魁增,永继振国兴,克复宗清政,广开家必升

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

http://truffleframework.com/tutorials

truffle是以太坊开发框架,采用JavaScript编写,支持智能合约的编译、部署和测试。
可以使用本地测试网络(ganache、testrpc),公共开发者测试网络(Ropsten、Kovan、Rinkeby),私有网络(私有链)进行测试。

开发环境

#安装NodeJs
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm config set registry http://registry.npm.taobao.org

# 安装web框架
sudo npm install -g express

# 安装Truffle
sudo npm install -g truffle solhint

# 安装Ganache-cli
sudo npm install -g ganache-cli

# Ganache-gui
axel -n 10 https://github.com/trufflesuite/ganache/releases/download/v1.1.0-beta.0/ganache-1.1.0-beta.0-x86_64.AppImage
chmod 755 ganache-1.1.0-beta.0-x86_64.AppImage
./ganache-1.1.0-beta.0-x86_64.AppImage

#通讯端口 127.0.0.1:7545 

智能合约

# 建立项目目录
mkdir myToken && cd myToken

# 初始化,生成文件
truffle init

生成目录结构如下
myToken
├── contracts
│   └── Migrations.sol
├── migrations
│   └── 1_initial_migration.js
├── test
├── truffle-config.js
└── truffle.js

contracts  ['kɒntrækts]  合约
migration [maɪ'greɪʃ(ə)n] 迁移

# 合约目录编写helloworld.sol程序
pragma solidity ^0.4.18;

contract hello {
    string greeting;
    
    function hello(string _greeting) public {
        greeting = _greeting;
    }

    function say() constant public returns (string) {
        return greeting;
    }
}

# 编译
truffle compile
Compiling ./contracts/HelloWorld.sol...
Writing artifacts to ./build/contracts

# 解锁用户
> personal.unlockAccount(eth.accounts[0], "me", 1000000)
true
####demo程序
truffle unbox webpack
truffle compile --network private

# truffle.js
    private: {
      network_id: 123,
      host: "10.0.70.22",
      port: 8545,
      gas:  3000000,  // gasLimit 不要超过块默认的gasLimit
      gasPrice: 1000000,
      from: "0x6700cbea6dfe938b3863938028e71fbf4ef4fa9a"
    },
    
    /*
    Gas由两个部分组成: 限制(Gas limit)和价格(Gas Price)。
    Gas Limit 是用户愿意为执行某个操作或确认交易支付的最大Gas量(最少21,000)。
    Gas Price 是 Gwei 的数量,用户愿意花费于每个 Gas 单位的价钱。
    当进行每笔交易时,发送人设定Gas Limit 和Gas Price,将 Gas Limit*Gas Price ,就得到了ETH交易佣金的成本。
    Wei是最小的 ETH 单位,一个ETH 等于一千 Finney,一百万 Szabo,十亿Gwei和百万万亿 Wei 。
    */
    
npm run dev
posted on 2018-02-07 15:38  北京涛子  阅读(311)  评论(0编辑  收藏  举报