一、以太坊客户端的安装
下载地址说明:
①官网下载地址::https://geth.ethereum.org/downloads/(需要翻墙),根据系统选择相应的版本
②国内镜像地址:https://ethfans.org/wikis/Ethereum-Geth-Mirror,但是没有支持linux版本
以下基于windows客户端:
Windows要求必须是64位系统,从官方网站下载编译好的win64客户端,安装步骤一步一步安装就可以:
比如我的geth 安装程序在F:\geth\geth.exe 目录下,当然也可以配置环境变量,不需要输入全路径啦
①进入cmd命令shell界面: 输入:F:\Geth\geth.exe --testnet --rpc --rpcapi db,eth,net,web3,personal --cache=1024 --rpcport 8545 --rpcaddr 0.0.0.0 --rpccorsdomain "*" --datadir f:\data consle 回车同步测试公链的账本数据,该步骤要很久很久(我之前同步了2天多),也可以硬盘拷贝已知的同步好的节点database的节点数据,这样同步就很快
geth 参数 简要说明:--testnet表示是测试的公链, --rpcport 8545是指端口 --datadir f:\data 数据同步的存入地址。 console >> geth.log 代表将控制台输出到文件geth.log中去 。详细的参数说明:geth --help 地址:https://www.cnblogs.com/tinyxiong/p/7918706.html 讲解比较详细:
同步完成表示节点该设备已经连到测试公链的一个节点,可以发起操作。
二 、以太坊账号的创建
① 直接在geth 控制台 创建账号:personal.newAccount('password')回车 得到是该账号的地址Address; password 是密码。创建好的的账号的创建文件在路径:testnet\keystore:创建的账号的文件私钥。
②开启挖矿 miner.start miner stop 获取eth可以用来支付gas ,后续的很多操作支付gas(测试公链获取比较容易)默认是本地的第一个账号进行挖矿,eth.accounts[0] ,或者用eth.coinbase()进行查看。也可以设置指定账号的来进行挖矿 miner.setEtherbase(账号), miner.stop()停止挖矿
备注说明:Gas是一种特别的单位用于Ethereum(以太坊)里,它用来衡量一个行为或者一系列行为有多少“工作量”。后续所有的操作支付的gas费用是gas*gasPrice
③查询以太币账户余额 eth.getBalance('账号地址‘),新创建的钱包的以太币是0,挖矿模式开始之后,账号已经有余额,见图二
’
④转账 eth.sendTransaction({from:a,to:b,value:1000000000000000000}) 账号a 向账号b 转 1ehter .. 以太币的单位的转换 :https://www.jianshu.com/p/9e9914c99692
表示账号a需要密码解锁personal.unlockAccount(a,'123456',600000) 解锁成功之后可进行转账:参数说明:a钱包地址;“123456”,密码,60000解锁的时间:单位是s.
⑤查询事务状态 eth.getTransactionReceipt('0xc1a4a91886be92d1bc708702364da58d44ead1afb9023f950b87bd5118976356') //查询合约交易状态。如查询数据的是否入区块且是成功。
三、部署合约
合约是用solidity语言后缀.sol的文件,在线的语言IED(暂时支持调试还不那么友好,没有其他语言的编辑器成熟),https://ethereum.github.io/browser-solidity ,可以在线编辑,也可以外部导入文件
导入合约,点击detail ,进入detail页面
下拉到WEB3DEPLOY,目录下面的复制图标,复制好编译的文件复制在geth的控制台回车得到合约部署的是地址。 编译的文件表示是用web3.eth.accounts[0]用第一个账号来部署合约,也可以修改指定账号来部署,部署合约的账号需要有一定额度的eth.
得到合约地址contract
四、测试合约
需要安装node.js 的依赖包web3. 用npm install web3(选择合适的版本)
① npm install web3
②在合约文件的目录内进入node.js控制台
③初始化 web3实例
Web3 = require('web3');
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); //节点地址
solc = require('solc');
④设置合约地址的变量 //设置地址
Address = '0xcc68e336C41506D763469B6A76Befb7f5C935eCA';
⑤加载本地合约
⑥ 调用对应合约的方法
四、 truffle框架
①首先按照truffle框架
网友评论