权益证明机制最开始是由点点币提出并应用(出块概率=代币数量 * 币龄) 简单来说谁的币多,谁就有更大的出块概率
package pos
import (
"crypto/rand"
"crypto/sha256"
"encoding/hex"
"fmt"
"log"
"math/big"
"strconv"
"time"
)
// 实现pos算法
// 相比于pow的暴力计算哈希值,pos相对环保一些
// 类比点点币实现
// 区块结构
type Block struct {
LastHash string
Hash string
TimeStamp string
Data string
Height int //区块高度
Address string //出块的地址
}
/*
声明两个节点池
1.mineNodesPool 用来存放指定的挖矿节点
2.probabilityNodesPool 用于存入挖矿节点的代币数量*币龄获得的概率
*/
var BlockChain []Block
// 挖矿节点
type Node struct {
tokens int //代币数量
days int //币龄
address string //节点地址
}
var mineNodePool []Node //挖矿节点节点池
var probalityNodesPool []Node //获取代币的数量的概率
var randNodePool []Node //随机节点池
// 初始化节点池
func init()