❤️💕💕欢迎来到web3的教程,在这里,将会学习到智能合约,区块链底层原理,eth和btc学习,web3或将会颠覆世界😍~Myblog:http://nsddd.top
[TOC]
geth是由以太坊基金会积极开发的Go语言实现,被认为是以太坊客户端的”官方实现“
通常,每个基于以太坊的区块链都有Geth实现
go - ethreum中不光光实现了以太坊的源码,更加实现了其他的插件功能
For prerequisites and detailed build instructions please read the Installation Instructions.
Building
geth
requires both a Go (version 1.14 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, runmake geth
or, to build the full suite of utilities:
make all
我们先把Geth在本地装
源码安装可以直接把源码l=clone到本地,在整个过程中我们可以在过程中看到有多少组件
从源码中构建Geth
要构建Geth,切换到下载源码的目录并且使用make命令
make命令相当于执行的是Makefile里面的脚本命令,我们可以看下
# This Makefile is meant to be used by people that do not usually work
# with Go source code. If you know what GOPATH is then you probably
# don't need to bother with make.
.PHONY: geth android ios evm all test clean
GOBIN = ./build/bin
GO ?= latest
GORUN = env GO111MODULE=on go run
geth: //make后面跟着的指令,我们会执行的下面的命令
$(GORUN) build/ci.go install ./cmd/geth
@echo "Done building."
@echo "Run \"$(GOBIN)/geth\" to launch geth."
all:
$(GORUN) build/ci.go install
android:
$(GORUN) build/ci.go aar --local
@echo "Done building."
@echo "Import \"$(GOBIN)/geth.aar\" to use the library."
@echo "Import \"$(GOBIN)/geth-sources.jar\" to add javadocs"
@echo "For more info see https://stackoverflow.com/questions/20994336/android-studio-how-to-attach-javadoc"
ios:
$(GORUN) build/ci.go xcode --local
@echo "Done building."
@echo "Import \"$(GOBIN)/Geth.framework\" to use the library."
test: all
$(GORUN) build/ci.go test
lint: ## Run linters.
$(GORUN) build/ci.go lint
clean:
env GO111MODULE=on go clean -cache
rm -fr build/_workspace/pkg/ $(GOBIN)/*
# The devtools target installs tools required for 'go generate'.
# You need to put $GOBIN (or $GOPATH/bin) in your PATH to use 'go generate'.
devtools:
env GOBIN= go install golang.org/x/tools/cmd/stringer@latest
env GOBIN= go install github.com/kevinburke/go-bindata/go-bindata@latest
env GOBIN= go install github.com/fjl/gencodec@latest
env GOBIN= go install github.com/golang/protobuf/protoc-gen-go@latest
env GOBIN= go install ./cmd/abigen
@type "solc" 2> /dev/null || echo 'Please install solc'
@type "protoc" 2> /dev/null || echo 'Please install protoc'
我们的目的是构建一个以太坊的私有链
go-ethereum
项目附带目录中的几个包装器/可执行文件cmd
。
命令 | 描述 |
---|---|
geth |
我们的主要以太坊 CLI 客户端。它是以太坊网络(主网、测试网或私有网)的入口点,能够作为完整节点(默认)、存档节点(保留所有历史状态)或轻节点(实时检索数据)运行。它可以被其他进程用作通过在 HTTP、WebSocket 和/或 IPC 传输之上暴露的 JSON RPC 端点进入以太坊网络的网关。geth --help 和命令行选项的CLI 页面。 |
clef |
独立签名工具,可用作geth . |
devp2p |
与网络层上的节点交互的实用程序,无需运行完整的区块链。 |
abigen |
源代码生成器,用于将以太坊合约定义转换为易于使用、编译时类型安全的 Go 包。如果合约字节码也可用,它可以在具有扩展功能的普通以太坊合约 ABI上运行。但是,它也接受 Solidity 源文件,使开发更加精简。有关详细信息,请参阅我们的原生 DApps页面。 |
bootnode |
我们的以太坊客户端实现的精简版本,它只参与网络节点发现协议,但不运行任何更高级别的应用程序协议。它可以用作轻量级引导节点,以帮助在专用网络中找到对等点。 |
evm |
EVM(以太坊虚拟机)的开发者实用程序版本,能够在可配置的环境和执行模式中运行字节码片段。evm --code 60ff60ff --debug run 其目的是允许对 EVM 操作码(例如)进行隔离的、细粒度的调试。 |
rlpdump |
开发人员实用工具,用于将二进制 RLP(递归长度前缀)转储(以太坊协议在网络和共识方面使用的数据编码)转换为用户友好的分层表示(例如rlpdump --hex CE0183FFFFFFC4C304050583616263 )。 |
puppeth |
帮助创建新的以太坊网络的 CLI 向导。 |
查看Geth确保安装成功
./build/bin/geth version
前面需要加上路径,因为geth是放在前面的路径后面,我们可以添加到环境变量中
-
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©