Skip to content

Latest commit

 

History

History
146 lines (98 loc) · 6.23 KB

File metadata and controls

146 lines (98 loc) · 6.23 KB

第9节 Geth(Go - ethreum)


❤️💕💕欢迎来到web3的教程,在这里,将会学习到智能合约,区块链底层原理,eth和btc学习,web3或将会颠覆世界😍~Myblog:http://nsddd.top


[TOC]

geth

geth是由以太坊基金会积极开发的Go语言实现,被认为是以太坊客户端的”官方实现“

go - ethreum的GitHub地址🖱️

通常,每个基于以太坊的区块链都有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, run

make geth

or, to build the full suite of utilities:

make all

我们先把Geth在本地装

我们安装Get可以选择克隆GitHub的源码方式安装

源码安装可以直接把源码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是放在前面的路径后面,我们可以添加到环境变量中

END 链接