testrpc访问以太坊
1. 智能合约abi弄不出来怎么办
一般来说,部署智能合约的步骤为:
1启动一个以太坊节点 (例如geth或者testrpc)。
2使用solc编译智能合约。 => 获得二进制代码。
3将编译好的合约部署到网络。(这一步会消耗以太币,还需要使用你的节点的默认地址或者指定地址来给合约签名。) => 获得合约的区块链地址和ABI(合约接口的JSON表示,包括变量,事件和可以调用的方法)。(译注:作者在这里把ABI与合约接口弄混了。ABI是合约接口的二进制表示。)
4用web3.js提供的JavaScript API来调用合约。(根据调用的类型有可能会消耗以太币。)
2. the method eth.getcompilers does not exist怎么办
你好,很多例子是eth.getCompilers()返回solidity 或者配置solc
然后会报Error: The method eth_getCompilers does not exist/is not available的错误
因为1.6以后已经移除了这个方法 使用低版本的geth也不可取
解决方法:
启动一个以太坊节点 (例如geth私有链之类的或者testrpc)。
用solc编译智能合约。
编译好的合约部署到网络。
eb3.js提供的JavaScript API来调用合约。(根据调用的类型有可能会消耗以太币。)
希望对你有帮助
3. 在windows下怎么启动Truffle
Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单,Truffle有以下:
内置的智能合约编译,链接,部署和二进制文件的管理。
快速开发下的自动合约测试。
脚本化的,可扩展的部署与发布框架。
部署到不管多少的公网或私网的网络环境管理功能
使用EthPM&NPM提供的包管理,使用ERC190标准。
与合约直接通信的直接交互控制台(写完合约就可以命令行里验证了)。
可配的构建流程,支持紧密集成。
在Truffle环境里支持执行外部的脚本。
Truffle是最流行的开发框架,使命是让开发更容易
安装方式:
$ npm install -g truffle
环境要求
NodeJS 5.0+
Windows,Linux,或Mac OS X
Truffle需要以太坊客户端,需要支持标准的JSON RPC API。对于开发来说,有一些更适合,后续章节会介绍(如:testRPC提供编码调试时的实时反馈)。
Windows用户的建议
如果你是Windows用户,我们推荐你使用Powershell或Git BASH来安装和使用Truffle框架。这两个shell环境相对默认的,提供了更方便的一些特性。
如果你必须使用命令行,可以看这里的关于如何配置Truffle的讨论。
4. 如何在SAE上架设RPC服务与Openresty的Lua服务通信
第1步:Openresty服务器安装和Lapis框架部署(此处只介绍Lapis的安装)
a). 安装luarocks。
sudo apt-get install luarocks
b). 通过luarocks安装lapis框架。
sudo luarocks install lapis
第2步:用Lapis 创建Openresty工程.
lapis new
3.在Openresty中创建一个定时任务。
定时器的实现思想如下:
让Openresty去加载一个lua脚本,脚本通过启动一个timer设定,调用一个函数,在被调用的函数内部,循环递归的进行time设定,调用这个被周函数本身,利用这种周期性的调用事件,我们定时递归的函数体中,执行一个函数过程CallRPC()去通过RPC协议访问SAE云上的数据。
RPC接口定义与实现,在下面接下来的Django部分会详细说明,下面就是提到的函数。此函数的主要的目的是6秒钟的时间间隔,通过RPC协议,拉取SAE上Mysql数据库里的数据,至于传输什么数据是和你的业务直接相关的,我们此处就使用一个简单的数据结构来说明问题。
local handler
function handler(premature, params)
--CallRPC就是Lua通过JSON.RPC访问SAE的RPC服务器。
CallRPC()
--递归的timer,重复调用handler函数。
local ok, err = ngx.timer.at(6, handler, "params-data")
ngx.log(ngx.DEBUG, "ok:", ok, " err:", err)
end
--第一次设定timer,调用hander函数。
local ok, err = ngx.timer.at(6, handler,"params-data")
ngx.log(ngx.DEBUG, "ok:", ok," err:", err)
--判断第一次调用是否成功,如查不成功,把问题原因打印出来。
if not ok then
ngx.log(ngx.ERR, "err:", err)
end
创建SAE上的RPC服务:
完成创建工作需要五步:
1. 创建一个Django工程 。
2. 安装RPC4Django。
3. .创建立数据库表。
4. 实现RPC服务接口。
5. 启动RPC服务。
我们先暂停Openresty的部分,先介绍如何在SAE构建RPC服务器。
之前已经提过,构SAE上的RPC服务使用的是SAE的PYTHON服务,使用的也是SAE天然支持的Django框架。下面介绍的是创建一个Django工程,SAE天然支持 Django, Tornado, Flask框加。如果需要更多信息,请参考如下文章。
http://www.epubit.com.cn/article/143
服务器端
第一步:创建一个Django工程 。
a). 创建工程。
django-admin.pystartproject testrpc
b). 在工程内创建APP。
pythonmanage.py startapp myrpc
两格指令执行后,系统上建立如下的目录结构。
这表明Djago已经成功能完成创建工程和APP。
第二步:安装RPC4Django。
RPC服务主要靠的就是用RPC4Django来实现,rpc4django是一个开源项目,项目的地址如下:https://github.com/davidfischer/rpc4django
rpc4django也是一个Django的App,使用的话,只要在setting.py配置文件中引用即可。
修改testrpc文件夹中的setting.py文件,如下图:
把rpc4django加入到工程安装的APP的列表里,这样就可以像引用普APP一样使用rpc4django了。
第三步.创建立数据库表。
Django是MVC模式的Python框加,并且支持ORM,只要定一义一个Python的Model类,就可以同步生成数据库表。
我们在myrpc文件夹下的models.py里面加入表定义类,如下图:
创建完Model模块类后,需要同步一下DB,将Django根据类的定义生成对应的DB表格。
pythonmanage.py syncdb
如果之前安装了SAE的本地运行环境的话,可能使用cloudsql.py 直接访问远端的SAE数据库命令行。
第五步:启动RPC服务。
经过以上四步,一个最简单的SAE上的RPC服务就架设完了,让我们启到一个这个应用,然后RPC服务才可用。
Python manager.py runserver 127.0.0.1:8080
回到之前的Lua介绍,还剩下的步骤:
1.Lua调用 SAE上的RPC服务接口。
2.将返回的数据写入Openresty的ShareDiction中。
3.使用Lapis模板系统,将返回结果显示到网页上。
(1)下载钱包软件,安装,同步数据完成后,关闭钱包软件;
(2)点系统 “开始”,“运行”,在里面输入 %appdata% 然后点确定(win XP和win7系统都是这样操作),或者同时按键盘 “win”键和 “R”键也可以打开运行界面。
(3)第二步点确定后,打开一个文件管理器,出来如下图所示的界面。在里面找到以货币名命名的文件夹,Litecoin,钱包软件对应的数据全在这个文件夹里面,双击打开这个文件夹。
(4)配置.conf文件
在开始,运行里面输入 notepad 确认,打开 记事本软件,在里面输入如下内容:(把下面的代码直接复制过去即可)
rpcuser=test
rpcpassword=test
rpcport=11095
daemon=1
server=1
gen=0
testnet=0
listen=0
maxconnections=100
rpcallowip=10.255.16.*
rpcuser、rpcpassword和rpcport你可以修改,也可以不改,rpcallowip需要根据你自己的情况进行修改。如果你的矿机和钱包软件在同一台机器,则删除rpcallowip这一行就可以了。
文件改好后,以Litecoin.conf为文件名保存到刚才的Litecoin目录里面,或者保存到桌面,再复制过去也可以。
以挖矿软件cgminer为例,修改cgminer.conf文件中的pools部分
url部分的IP地址为你钱包所在机器的IP地址,端口11095就是刚才在Litecoin.conf里面配置的端口,user和pass也是一样,和上面的配置文件保持一致即可。
另外建议修改另外两个参数的值如下:
"queue" : "0",
"scan-time" : "1",
设置完成,运行cgminer开始挖矿。。。。
6. 支付智能合约的运行需要多少eth
一般来说,部署智能合约的步骤为:
- 启动一个以太坊节点 (例如geth或者testrpc)。
- 使用solc编译智能合约。 => 获得二进制代码。
- 将编译好的合约部署到网络。(这一步会消耗以太币,还需要使用你的节点的默认地址或者指定地址来给合约签名。) => 获得合约的区块链地址和ABI(合约接口的JSON表示,包括变量,事件和可以调用的方法)。(译注:作者在这里把ABI与合约接口弄混了。ABI是合约接口的二进制表示。)
- 用web3.js提供的JavaScript API来调用合约。(根据调用的类型有可能会消耗以太币。)
7. java中怎么样调用eth的智能合约
一般来说,部署智能合约的步骤为:
启动一个以太坊节点 (例如geth或者testrpc)。
使用solc编译智能合约。 => 获得二进制代码。
将编译好的合约部署到网络。(这一步会消耗以太币,还需要使用你的节点的默认地址或者指定地址来给合约签名。) => 获得合约的区块链地址和ABI(合约接口的JSON表示,包括变量,事件和可以调用的方法)。(译注:作者在这里把ABI与合约接口弄混了。ABI是合约接口的二进制表示。)
用web3.js提供的JavaScript API来调用合约。(根据调用的类型有可能会消耗以太币。)
8. 如何安装 testrpc 和 truffle · EthFans/wiki Wiki · GitHub
For Ubuntu
注意事项: 请勿直接使用 root 用户,请使用带有 sudo 权限的普通用户安装 testrpc 和 truffle。
sudo apt-get update
# 安装系统依赖
sudo apt-get install build-essential git openssl
# 安装 nodes
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install nodejs
# 修复 npm 全局安装的文件权限问题
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
# 设置 Bash 环境变量
echo [[ -s "$HOME/.profile" ]] && source $HOME/.profile' >> ~/.bash_profile
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile
# 安装 testrpc
npm install -g ethereumjs-testrpc
# 安装 truffle
npm install -g truffle
For Mac
# 安装 Mac 环境下的编译套件
xcode-select --install
# 安装 brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安装 nvm
brew update
brew install nvm
source $(brew --prefix nvm)/nvm.sh
echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile
# 通过 nvm 安装 node
nvm install v5.11.1
nvm alias default 5.11.1
# 安装 testrpc
npm install -g ethereumjs-testrpc
# 安装 truffle
npm install -g truffle