# geth_book **Repository Path**: newlife/geth_book ## Basic Information - **Project Name**: geth_book - **Description**: geth项目源码学习,个人理解 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-03-04 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: geth ## README # geth_book ## 介绍 go-ethereum代码分析,当前分析版本1.13.14 * 不是教程 * 各部分之间没有先后关系 * 没有具体的算法细节 ## 侧重 1. 分析具体功能的实现 2. 代码中各个对象之间的关系 3. 流程描述 ## 代码片段 为了节省篇幅,文档中的代码都有删减, * 去除枝节,关注主要代码逻辑 * 大部分的**if err != nil** ## 一些困难 阅读代码需要对go语言比较熟悉,尤其是channel部分的理解。整个过程最痛苦的就是: * **channel**,无数的channel,一些channle还是跨包存在的,以参数的形式分布各处 * **callback**,回调函数带来的理解上和调试上的困难, * **interface**,接口是golang本身的特性,设计的原因,有的接口只有一个实现,就显得接口很java * **naming**,database,backend等名字真的太好用了,各处都有,可以考虑换个更具意义的名字。可见是困扰程序员的重要问题。 * **leagce code**,一些不再支持的功能或者特性 * **new feature**,geth是一个不断演进的系统,还在增加新的功能,不可避免的会对现有的代码进行调整 * **compatibility**,新功能的增加还要兼容以前的功能,带来实现上的复杂的