Skip to content

go 语言从零构建一个在本地运行的区块链 blockchain from scratch

Notifications You must be signed in to change notification settings

KenLoong/blockchain-from-stratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

blockchain from scratch

这是一个区块链学习项目,用 go 语言从零构建一个在本地运行的区块链,实现了数据加解密、节点间的 block 同步,还有一个简单的 vm 虚拟机逻辑,实现基本的数学加减指令。

实现的数据结构包含

  • block (区块)
  • transaction (事务)
  • blockchain (区块链)
  • server (运行节点)
  • vm (模拟虚拟器)
  • tcpTransacport (使用 TCP 协议来同步数据)
  • message (rpc 消息载体)
  • address (地址)
  • PrivateKey & PublicKey (椭圆曲线数字签名算法 ECDSA)

特别说明

这个项目是跟油管技术大牛 Anthony GG 学习的,这个项目的代码结构是很优美的,很有设计理念,也可以加深自己对设计模式的理解。但是我没有照抄 Anthony 的代码,原因是他的版本有可以优化的地方,也有一些他没有察觉的 bug,在学习的过程中我基本都有做一些小优化,顺便修复一些 bug,你也可以看看我的笔记 note.md 来具体的优化和 fix 是什么,也可以去看看我给源项目提的 pr

源项目资源:

我提的 pr

how to run

make run

run

how to test

make test

test

About

go 语言从零构建一个在本地运行的区块链 blockchain from scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published