Linux服务器

推荐列表 站点导航

当前位置:首页 > 服务器技术 > Linux服务器 >

web3通过testrpc访问以太坊数据入门

来源:网络整理  作者:wy  发布时间:2020-12-24 11:45
一、安装truffle+testrpc开发和测试环境。truffle是开发环境,testrpc是测试环境。 工作在64位Linux,版本16.04上进行。 以下...

一、安装truffle+testrpc开发和测试环境。truffle是开发环境,testrpc是测试环境。

工作在64位Linux,版本16.04上进行。

以下命令如果权限不够则使用sudo运行。

1、安装环境时需要Git,如果没有可以用如下命令安装

add-apt-repository ppa:git-core/ppa  

apt-get update  

apt-get install git

2、需要在nodejs环境,通过如下命令安装

apt-get install nodejs  

apt-get install npm

其中npm是nodejs的包管理器,之后truffle和testrpc都是nodejs的包,需要使用npm进行安装。

如果nodejs版本过低,可以使用n进行升级

npm install -g n  

n stable

n是nodejs的一个版本管理器,n stable命令让nodejs升级到最新的稳定版

3、安装truffle

npm install -g truffle

如果安装成功,执行

truffle version

可以看到版本号。

4、安装web3的testrpc

npm install -g ethereumjs-testrpc

安装后,执行testrpc

web3通过testrpc访问以太坊数据入门

如果看到上述内容,说明安装成功。testrpc提供了一个最简单的区块链环境,里面有10个默认用户(给出了他们的地址和私钥)

如果没有出现,则说明还需要安装其他依赖,请根据提示信息安装相关nodejs包,使用命令一般为:

npm install -g [依赖包名]

 

二、环境测试

truffle工程创建

参考:https://github.com/trufflesuite/truffle-init-webpack

1、开启testrpc测试环境,看到testrpc提供的10个默认用户。

2、另起一个终端(testrpc那个不要关),建立一个truffle工程文件夹并进入。

mkdir project  

cd project

3、下载truffle范例工程

truffle init webpack

注意:truffle init也能下载一个范例工程,但是当前版本这个范例有bug无法运行

4、编译并运行:

truffle compile  

truffle migrate  

npm run dev

此时范例工程已经搭建完毕搭载在:8080。用浏览器访问可以看到范例里的metacoin应用

备注:

修改工程文件夹里的文件后dev会自动重新编译并挂载,非常智能

想要清除区块链里的全部数据,需要关闭testrpc

 

三、开发

参考web3的API:https://github.com/ethereum/wiki/wiki/JavaScript-API

常用函数有:

数据上链:

web3.eth.sendTransaction(object)

发送内容为一个object,里面需要填写发送相关信息。返回值为一个hex的Transaction地址。

Object内必填内容有:

from : String  //发送方地址

to : String //接收方地址

数据下链:

web3.eth.getTransaction(hash)

输入内容为Transaction的hash地址,返回值为Transaction的Object。

Transaction内的Data为Hex形式,建议传输数据前先转一下。如果直接字符串格式的Data直接发送到Transaction中,自动转的Hex会带0x前缀

web3.ToHex(String or Number)

相应的,接收后用

web3.toAscii(hexString)

解出原始地址。

 

一个简单的例子:

//jsonIO.js 发送和查找Transaction

function jsonIO(){

var O_jsonIO=new Object;

O_jsonIO.write_json=function write_json(fromAddr,toAddr,jsonData){

var jsonstr=JSON.stringify(jsonData);

var jsonHex=web3.fromAscii(jsonstr);

var trans={"from":fromAddr,

"to":toAddr,

"data":jsonHex

};

return web3.eth.sendTransaction(trans);

}

O_jsonIO.read_json_from_address=function read_json_from_address(fromAddr,startBlock,endBlock){

var jsonArr=new Array();

if (startBlock==null) {

console.log("default start from block 0");

startBlock=0;

}

if (endBlock==null) {

console.log("default end to block "+web3.eth.blockNumber);

endBlock=web3.eth.blockNumber;

}

if (startBlock<0 || startBlock>endBlock || endBlock>web3.eth.blockNumber) {

console.error("no such blocks")

return null;

}

for (var i=0;i<=web3.eth.blockNumber;i++)

{

var Block=web3.eth.getBlock(i);

if (Block.transactions!=null && Block!=null)

{

Block.transactions.forEach(function (e)

{

var getT=web3.eth.getTransaction(e);

var Tdata=web3.toAscii(getT.input);

if (Tdata.charAt(0)=="{" && (getT.from==fromAddr || getT.to==fromAddr))

{

//console.log("find");

//console.log(Tdata);

var Obj=JSON.parse(Tdata);

jsonArr.push(Obj);

}

});

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/fwq/8513.shtml

相关文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

web3通过testrpc访问以太坊数据入门

2020-12-24 编辑:wy

一、安装truffle+testrpc开发和测试环境。truffle是开发环境,testrpc是测试环境。

工作在64位Linux,版本16.04上进行。

以下命令如果权限不够则使用sudo运行。

1、安装环境时需要Git,如果没有可以用如下命令安装

add-apt-repository ppa:git-core/ppa  

apt-get update  

apt-get install git

2、需要在nodejs环境,通过如下命令安装

apt-get install nodejs  

apt-get install npm

其中npm是nodejs的包管理器,之后truffle和testrpc都是nodejs的包,需要使用npm进行安装。

如果nodejs版本过低,可以使用n进行升级

npm install -g n  

n stable

n是nodejs的一个版本管理器,n stable命令让nodejs升级到最新的稳定版

3、安装truffle

npm install -g truffle

如果安装成功,执行

truffle version

可以看到版本号。

4、安装web3的testrpc

npm install -g ethereumjs-testrpc

安装后,执行testrpc

web3通过testrpc访问以太坊数据入门

如果看到上述内容,说明安装成功。testrpc提供了一个最简单的区块链环境,里面有10个默认用户(给出了他们的地址和私钥)

如果没有出现,则说明还需要安装其他依赖,请根据提示信息安装相关nodejs包,使用命令一般为:

npm install -g [依赖包名]

 

二、环境测试

truffle工程创建

参考:https://github.com/trufflesuite/truffle-init-webpack

1、开启testrpc测试环境,看到testrpc提供的10个默认用户。

2、另起一个终端(testrpc那个不要关),建立一个truffle工程文件夹并进入。

mkdir project  

cd project

3、下载truffle范例工程

truffle init webpack

注意:truffle init也能下载一个范例工程,但是当前版本这个范例有bug无法运行

4、编译并运行:

truffle compile  

truffle migrate  

npm run dev

此时范例工程已经搭建完毕搭载在:8080。用浏览器访问可以看到范例里的metacoin应用

备注:

修改工程文件夹里的文件后dev会自动重新编译并挂载,非常智能

想要清除区块链里的全部数据,需要关闭testrpc

 

三、开发

参考web3的API:https://github.com/ethereum/wiki/wiki/JavaScript-API

常用函数有:

数据上链:

web3.eth.sendTransaction(object)

发送内容为一个object,里面需要填写发送相关信息。返回值为一个hex的Transaction地址。

Object内必填内容有:

from : String  //发送方地址

to : String //接收方地址

数据下链:

web3.eth.getTransaction(hash)

输入内容为Transaction的hash地址,返回值为Transaction的Object。

Transaction内的Data为Hex形式,建议传输数据前先转一下。如果直接字符串格式的Data直接发送到Transaction中,自动转的Hex会带0x前缀

web3.ToHex(String or Number)

相应的,接收后用

web3.toAscii(hexString)

解出原始地址。

 

一个简单的例子:

//jsonIO.js 发送和查找Transaction

function jsonIO(){

var O_jsonIO=new Object;

O_jsonIO.write_json=function write_json(fromAddr,toAddr,jsonData){

var jsonstr=JSON.stringify(jsonData);

var jsonHex=web3.fromAscii(jsonstr);

var trans={"from":fromAddr,

"to":toAddr,

"data":jsonHex

};

return web3.eth.sendTransaction(trans);

}

O_jsonIO.read_json_from_address=function read_json_from_address(fromAddr,startBlock,endBlock){

var jsonArr=new Array();

if (startBlock==null) {

console.log("default start from block 0");

startBlock=0;

}

if (endBlock==null) {

console.log("default end to block "+web3.eth.blockNumber);

endBlock=web3.eth.blockNumber;

}

if (startBlock<0 || startBlock>endBlock || endBlock>web3.eth.blockNumber) {

console.error("no such blocks")

return null;

}

for (var i=0;i<=web3.eth.blockNumber;i++)

{

var Block=web3.eth.getBlock(i);

if (Block.transactions!=null && Block!=null)

{

Block.transactions.forEach(function (e)

{

var getT=web3.eth.getTransaction(e);

var Tdata=web3.toAscii(getT.input);

if (Tdata.charAt(0)=="{" && (getT.from==fromAddr || getT.to==fromAddr))

{

//console.log("find");

//console.log(Tdata);

var Obj=JSON.parse(Tdata);

jsonArr.push(Obj);

}

});

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/fwq/8513.shtml

相关文章

风云图片

推荐阅读

返回Linux服务器频道首页