以太坊 智能合约学习笔记1


暂时粗略放置,以后会整理,望见谅,对CSDN使用不是很熟练,设计难看望见谅。新手学习,如有问题请大神指教,同时欢迎大家一同学习讨论。

1.geth(go ethereum)。

是一个客户端,是以太坊节点的一个实现,是真正的以太坊环境,也是目前使用最广泛的客户端。支持windows、linux和OSX三类操作系统。可以用来管理账户、转账、部署智能合约等。
下载地址:http://ethereum.github.io/go-ethereum/downloads.
geth安装、测试与基础操作。
geth version
geth account list 查看以太坊账户 geth account list --datadir xxx
geth account new 创建以太坊账户 geth account new --datadir xxx
geth console 通过JS控制台和JS代码访问以太坊网络 geth --datadir xxx console
geth console 2>>geth.log 2表示日志通道

启动geth节点(一些参数可以顾名思义):
geth --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi=“db,eth,net,web3,personal,web3” --datadir private console

geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain “*” --rpcport 8545 --rpcapi=“db,eth,net,web3,personal,web3” --allow-insecure-unlock --datadir private console

进入交互命令行:eth.accounts可以查看账户
txpool.status 可以查看交易池的状态。

2.testrpc。

testrpc是在本地模拟的一个以太坊环境,主要用于开发调试。调试通过后可以部署到真正的以太坊环境中。testrpc本身是一个服务,端口号为8545。
testrpc安装、测试与基础操作。
安装:npm install -g ethereumjs-testrpc
运行命令:testrpc

3.建立私有链。

创世块:block.json文件

{
	"config":
	{
		"chainId":15,
		"homesteadBlock":0
	},
	"difficulty":"20",
	"gasLimit":"2100000",
	"alloc":{
	}
}

其中各项含义:
chainId:指定了独立的区块链网络ID。公链的ID是1。
homesteadBlock:值为0表示有效。
difficulty:挖矿的难易程度,值越小越容易。
gasLimit:挖每个区块需要消耗资源的上限。
alloc:为了测试挖矿而临时分配的账户。

初始化区块链:geth init block.json --datadir test
启动以太坊客户端:geth --datadir test console 其中datadir参数表示会使用test目录保存相关文件。
绑定矿工:miner.setEtherbase()
查询账号余额:eth.getBalance()
开始挖矿:miner.start() miner.start(n) n表示线程数
停止挖矿:miner.stop()
控制挖矿数量:miner.start(2);admin.sleepBlocks(10);miner.stop();
查询当前区块链中的区块数:eth.blockNumber

4.Remix。

remix是官方推出的开源的Solidity智能合约编写工具。
在线链接:https://remix.ethereum.org
开源地址:https://github.com/ethereum/remix
可以将源代码下载下来,在自己机器上搭建本地remix,环境问题非常多,新手不建议尝试。

5.Node.js。

下载地址:http://nodejs.org

6.Solidity编译器。

用于编译Solidity源代码.sol文件,可将其编译成多种目标文件。
安装:npm install -g solc
solcjs --abi xxx.sol 将xxx.sol编译成abi文件
solcjs --abi --bin xxx.sol 可将xxx.sol编译成xxx_sol_xxx.bin和xxx_sol_xxx.abi

7.Web3.js。

Web3.js是一套API,Web3.js是Node.js的一个模块。
安装:npm install web3 是在当前目录下安装Web3.js。
npm install [email protected]制定安装的版本号。
Node.js的repl环境中导入Web3模块
var Web3 = require(“web3”)只有此目录下安装了web3.js才可以导入。
var web3 = new Web3(new Web3.providers.HttpProvider(“http://localhost:8545”)); 创建we3实例。

8.Ethereum Wallet。

Ethereum Wallet是一个可视化的客户端,功能与geth类似但是不如geth。
开源代码地址:https://github.com/ethereum/mist
安装包地址:https://github.com/ethereum/mist/releases

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章