当前位置: 首页 > news >正文

网站推广页面 英语企业网站建设600元

网站推广页面 英语,企业网站建设600元,为什么建设旅游网站,易讯网络网站建设文章目录前言一、PoW——工作量证明二、go语言简单案例前言 提示#xff1a;以下是本篇文章正文内容#xff0c;下面案例可供参考 一、PoW——工作量证明 ⚫ Proof-of-Work 简称 PoW#xff0c;即为工作量证明 ⚫ 通过计算一个数值#xff0c;使得拼揍上交易数据后内容的… 文章目录前言一、PoW——工作量证明二、go语言简单案例前言 提示以下是本篇文章正文内容下面案例可供参考 一、PoW——工作量证明 ⚫ Proof-of-Work 简称 PoW即为工作量证明 ⚫ 通过计算一个数值使得拼揍上交易数据后内容的值满足规定的上限,在节点成功 找到满足的 Hash 值之后会马上对全网进行广播打包区块网络的节点收到广播 打包区块会立刻对其进行验证 ⚫ 网络中只有最快解密的区块才会添加的账本中其他的节点进行复制这样就保 证了整个账本的唯一性 ⚫ 假如节点有任何的作弊行为都会导致网络的节点验证不通过直接丢弃其打包的 区块这个区块就无法记录到总账本中作弊的节点耗费的成本就白费了因此在 巨大的挖矿成本下也使得矿工自觉自愿的遵守比特币系统的共识协议也就确保 了整个系统的安全 二、go语言简单案例 package mainimport (timestrconvcrypto/sha256encoding/hexfmtstrings )//通过代码实现PoW挖矿//定义区块 type Block struct {//上一个区块的哈希PreHash string//当前区块的哈希HashCode string//时间戳TimeStamp string//难度系数Diff int//交易信息Data string//区块高度Index int//随机值Nonce int }//第一个区块创世区块 func GenerateFirstBlock(data string) Block {//创建第一个Blockvar firstblock Blockfirstblock.PreHash 0firstblock.TimeStamp time.Now().String()//暂设为4firstblock.Diff 4//交易信息firstblock.Data datafirstblock.Index 1firstblock.Nonce 0//通过sha256得到自己的哈希firstblock.HashCode GenerationHashValue(firstblock)return firstblock }//生成区块的哈希值 func GenerationHashValue(block Block) string {//按照比特币的写法将区块的所有属性拼接后做哈希运算//int转为字符串var hashdata strconv.Itoa(block.Index) strconv.Itoa(block.Nonce) strconv.Itoa(block.Diff) block.TimeStamp//算哈希var sha sha256.New()sha.Write([]byte(hashdata))hashed : sha.Sum(nil)return hex.EncodeToString(hashed) }func main() {//测试创建创世区块var firstBlock GenerateFirstBlock(创世区块)fmt.Println(firstBlock)fmt.Println(firstBlock.Data)//需要生成下一个区块GenerateNextBlock(第二区块, firstBlock) }//产生新的区块 func GenerateNextBlock(data string, oldBolock Block) Block {//产生一个新的区块var newBlock BlocknewBlock.TimeStamp time.Now().String()//难度系数newBlock.Diff 5//高度newBlock.Index 2newBlock.Data datanewBlock.PreHash oldBolock.HashCodenewBlock.Nonce 0//创建pow()算法的方法//计算前导0为4个的哈希值newBlock.HashCode pow(newBlock.Diff, newBlock)return newBlock }//pow算法 func pow(diff int, block *Block) string {//实现不停地去挖矿for {//认为是挖了一次矿了hash : GenerationHashValue(*block)//挖矿过程的哈希打印fmt.Println(hash)//判断哈希值前导0是否为diff个0//strings.Repeat:判断hash是否有diff个0写1就判断为有多少个1if strings.HasPrefix(hash, strings.Repeat(0, diff)) {//挖矿成功fmt.Println(挖矿成功)return hash} else {//没挖到//随机值自增block.Nonce}} }
http://www.pierceye.com/news/253696/

相关文章:

  • 新房网站建设公司手机制作app需要什么软件
  • 网站备案登记表网站建设及规划
  • 彩票网站建设平台wordpress模板怎么改织梦
  • 商业中心 网站建设怎么创建自己的官网
  • 中国建设银行总行官方网站宁波网站推广渠道
  • 网站备案的网站名称分类信息网址
  • 教育类网站建站jae安装wordpress
  • wordpress自定义站点设计网站广告语
  • 广告型网站怎么做的网络技术学习网站
  • 网站建设公司不赚钱进一步推进网站建设
  • 四川省工程建设协会网站360路由器网站建设
  • 快云服务器怎么做网站360网站收录提交入口大全
  • 网站设计的安全尺寸正规的培训行业网站开发
  • 网站提交了被收录后改怎么做商丘网站制作教程
  • 建网站被封了网站建设网页设计小江
  • 用node做的网站索引网站有哪些
  • 无锡设计网站建设时尚杂志网站设计分析
  • 嘉定区网站建设网站建设怎么谈
  • 网站开发 毕业设计如何做网站app
  • 优惠券网站开发谷歌seo搜索引擎下载
  • 安徽省建设工程资料上传网站重庆相亲网
  • 河南建设网站官网中英文公司网站
  • 手机版网站如何建设会议响应式网站开发
  • 肇庆住房建设部网站国外专门做旅游攻略的网站
  • 网站如何设置长尾词静态网站开发一体化课程
  • 学校网站建设流程做网站用哪个工具
  • 网站开发工作室策划案域名的价格
  • 郑州艾特网站建设公司互联网保险图片
  • 网站后台任务网站设计建设一般多少钱
  • 电子商务网站设计的基本流程创业商机网农村