php truffle,利用truffle与智能合约进行交互

安装:

#第一个终端

sudo apt install npm  #安装npm

sudo npm install npm@latest -g  #升级npm

sudo npm install -g n  #安装nodejs的模块n

sudo n stable  #下载nodejs稳定版

sudo npm install -g truffle  #安装truffle框架

一条一条复制粘贴,好,你的环境搭好了

部署项目:

这里我直接连接到geth客户端,而不是选择连接到testrpc,尽管testrpc使用比geth方便多了

连接到testrpc端的博客有许多,需要的可以自行百度。

#第一个终端

cd /usr/local

mkdir mytest && cd mytest

truffle unbox metacoin  #生成默认demo

开启geth

#第二个终端

geth --networkid 15 --datadir data --rpc --rpcaddr 108.61.218.173 --rpcport 8545 --nodiscover --port 80 --unlock 0 --ipcpath "/root/.ethereum/geth.ipc"

#第三个终端

geth attach  #连接到geth

personal.unlockAccount(eth.accounts[0])  #解锁账户1

指定网络

#第一个终端

cd /usr/local/mytest

vim truffle.js  #下面这段拷进去,注意修改live中的地址

module.exports = {

// See

// to customize your Truffle configuration!

networks: {

development: {

host: "127.0.0.1",

port: 8588,

network_id: "*"

},

live: {

host:"108.61.218.173",

port: 8545,

network_id: 15,

gas: 4612388,

}

}

}

新建合约

#第一个终端

cd /usr/local/mytest/contracts

vim Adoption.sol   #把下面这段拷进去,对齐什么的别理啦,拷过来就这样了,不管了

pragma solidity ^0.4.4;

contract Adoption {

address[16] public adopters; //存储地址

//采用一个宠物

function adopt(uint petId) public returns (uint) {

require(petId >= 0 && petId <= 15);

adopters[petId] = msg.sender;

return petId;

}

//返回采用者

function getAdopters() public returns (address[16]) {

return adopters;

}

}

部署合约

#第一个终端

cd /usr/local/mytest/migrations

vim 2_deploy_contracts.js    #下面这段拷进去

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

module.exports = function(deployer) {

deployer.deploy(Adoption);

};

调用合约

#第一个终端,下面很多操作需要到终端三进行挖矿操作,确认交易,由于我提前部署,忘记那些了,遇到指令卡住不执行,先试试到终端三执行, miner.start(),也可以在合约三执行txpool.status 查看是否有未确认的交易

truffle console --network live  #连接到geth

compile     #编译

migrate  #移植

deploy   #部署

Adoption.deployed().then(instance => contract = instance)  #实例化Adoption

contract.adopt(6)  #执行合约函数,领养宠物

contract.getAdopters()  #查看宠物主人

参考博客:

以太坊系列之十六&colon; 使用golang与智能合约进行交互

以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...

如何使用Web3在浏览器中与智能合约进行交互

2018-4-20 技术文章 Web3.js是以太坊官方的Javascript API,可以帮助智能合约开发者使用HTTP或者IPC与本地的或者远程的以太坊节点交互.实际上就是一个库的集合,主要包括下 ...

truffle 发布 智能合约

参考 这篇https://www.codeooze.com/blockchain/ethereum-geth-private-blockchain/ 说的已经很详细了 genesis.json 过时了 ...

Truffle 4&period;0、Geth 1&period;7&period;2、TestRPC在私有链上搭建智能合约

目录 目录 1.什么是 Truffle? 2.适合 Truffle 开发的客户端 3.Truffle的源代码地址 4.如何安装? 4.1.安装 Go-Ethereum 1.7.2 4.2.安装 Tru ...

BOOM -- 智能合约编程

译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件.本文的翻 ...

区块链入门到实战(27)之以太坊&lpar;Ethereum&rpar; – 智能合约开发

智能合约的优点 与传统合同相比,智能合约有一些显著优点: 不需要中间人 费用低 代码就是规则 区块链网络中有多个备份,不用担心丢失 避免人工错误 无需信任,就可履行协议 匿名履行协议 以太坊(Ethe ...

EOS之hello智能合约解析

传送门: 柏链项目学院   EOS的智能合约与以太坊区别很大, EOS 的智能合约基于 WebAssembly(WASM) 技术执行用户生成的应用程序和代码.WASM是一项新兴的网络标准,得到了谷歌, ...

以太坊系列之十六:golang进行智能合约开发

以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...

Eos的Wasm智能合约的局限性

官方只支持用C++写智能合约 用C++写智能合约门槛过高,会把许多开发者挡在门外,C++的复杂性也会让智能合约的设计变得困难. Wasm智能合约的效率并不是最优 由于C++最终也是编译成wasm字节码 ...

随机推荐

关于提高python程序执行效率的思路和想法

相比编译型语言(C系列)python胜在简介的语法和优雅的动态编程体验,但是在执行效率上,python有解释性语言先天的劣势——执行效率较低,为了让编写出的程序获得更快的执行效率,开启此文章. pyt ...

web系统权限设计

应该有七张表 1.appSystem 表: 主要在多系统中的 统一权限管理:主要就是系统的URL USE [Star_Permission] GO /****** 对象: Table [dbo].[A ...

BZOJ 4551 树

线段树+标记永久化. #include #include #include #include

createjs基础

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值