Categorygithub.com/csunny/dpos
modulepackage
0.2.0
Repository: https://github.com/csunny/dpos.git
Documentation: pkg.go.dev

# README

Implement a simple blockchain use dpos algorithm

Architecture Design

  • Create a P2P Conn-pool
  • BlockChain Generate
  • Node Manage And Vote
  • Pick Node
  • Write Block On Blockchain

Build

go build -o build/dpos main/dpos.go

RUN

git clone [email protected]:csunny/dpos.git

cd dpos    // 切换到源码路径下
go build main/dpos.go

connect multi peer

./dpos new --port 3000 --secio

Vote

./dpos vote -name QmaxEdbKW4x9mP2vX15zL9fyEsp9b9yV48zwtdrpYddfxe -v 30

Document

Doc

Licence

MIT

# Packages

No description provided by the author
* Tools package.

# Functions

CaculateBlockHash 计算Block的hash值.
CaculateHash 计算string的hash值.
GenerateBlock 根据上一个区块信息,生成新的区块.
HandleStream handler stream info.
IsBlockValid 校验区块是否合法.
MakeBasicHost 构建P2P网络.
PickWinner 根据投票数量选择生成区块的节点.
Run 函数.
SavePeer 将加入到网络中的节点信息保存到配置文件中,方便后续投票与选择.

# Constants

BPCount 区块生产者的数量.
DefaultVote 节点默认的票数.
FileName 节点信息保存配置文件.

# Variables

BlockChain slice to storage Block.
NewNode 创建新的节点加入到P2P网络.

# Structs

Block struct, A block contain 以下信息: Index 索引、Timestamp(时间戳)、BPM、Hash(自己的hash值)、PreHash(上一个块的Hash值)、validator(此区块的生产者信息).
Validator 定义节点信息.