[Блокчейн | Смарт-контракт] Исходный код Ethereum (2) - код входа клиента go-ethereum и анализ узла

1. makefile geth и логика компиляции

В предыдущей статье упоминалось использование make geth для компиляции клиента geth. Давайте посмотрим, что делает файл make:

.PHONY: geth android ios evm all test clean

GOBIN = ./build/bin
GO ?= latest
GORUN = env GO111MODULE=on go run

geth:
	$(GORUN) build/ci.go install ./cmd/geth
	@echo "Done building."
	@echo "Run \"$(GOBIN)/geth\" to launch geth."

all:
	$(GORUN) build/ci.go install

Казненный ci.go

func main() {
	log.SetFlags(log.Lshortfile)

	if !common.FileExist(filepath.Join("build", "ci.go")) {
		log.Fatal("this script must be run from the root of the repository")
	}
	if len(os.Args) < 2 {
		log.Fatal("need subcommand as first argument")
	}
	switch os.Args[1] {
	case "install":
		doInstall(os.Args[2:])

}

В нем делается две вещи:
1. Команда ln -s генерирует образ файла go-etherum в директории build/_workspace/, который не занимает места на диске и обновляется синхронно с исходным файлом

2

Guess you like

Origin blog.csdn.net/qq_28505809/article/details/127862322