未完待续
一、目录讲解
- cmd cli命令
- geth 区块链创世块生成、账户、挖矿等操作
- chaincmd.go
- func initGenesis 初始化区块链的入口调用方法
- func localConsole geth命令行模式
- chaincmd.go
- utils
- flags.go 命令设置
- geth 区块链创世块生成、账户、挖矿等操作
- core 区块链核心操作
- rawdb 操作ethdb数据库
- genesis.go 创始区块操作
- func SetupGenesisBlock 设置创始区块
- params 参数,类似模型
- ethdb 数据库
- vendor 第三方包
- gppkg.in/urfave/cli.v1 命令行cli扩展包
- gopkg.in/olebedev/go-duktape.v3 嵌入式Javascript引擎
- github.com/robertkrimen/otto javascript解析器,和上面作用一样,比较
- common
- types.go hash和address长度设置
- console geth命令行操作核心
- internal
- jsre js运行环境
- web3ext 扩展web3
- ethapi 扩展rpc api
- ethclient js交互客户端与web3.js对应
- node
- defaults.go 节点默认配置
- rpc
- endpoints.go rpc服务端监听
- server.go rpc服务端
- client.go rpc客户端
- eth
api.go jsonrpc实现方法
backend.go 实现APIs方法,参与rpc service
关键命令
命令1: personal.newAccount(password) - 新建账户
api: internal/ethapi.go
func (s *PrivateAccountAPI) NewAccount(password string) (common.Address, error)`
命令2:miner.start(threadNum) - 开始挖矿,默认eth.accounts
第一个用户
api: eth/api.go
func (api *PrivateMinerAPI) Start(threads *int) error
命令3:miner.stop() - 停止挖矿
api: eth/api.go
func (api *PrivateMinerAPI) Stop()
命令4:personal.unlockAccount(address, password) - 转账前解锁账户
api: internal/ethapi.go
func (s *PrivateAccountAPI) UnlockAccount(addr common.Address, password string, duration *uint64) (bool, error)
命令5:eth.sendTransaction({from: _, to: _, value: _}) - 转账
api: eth/api.go
func (p *peer) SendTransactions(txs types.Transactions) error
网友评论