zoukankan      html  css  js  c++  java
  • 基于go-restful实现的PoW算力池模型

    最开始知道区块链是在17年初,当时因为项目压力不大,开始研究比特币源码。对于比特币中提到的Proof of Work,当时只是一眼带过,并没有详细查看过相关的代码。在最近的项目中,考虑到性能的要求,需要接入算力池来提高性能,因此实现了一个简单的算力池模型。

    下面是使用这个模型简单实现的PoW:

    文件结构

    • calculatepool:
      • calculatepool.proto:定义用到的结构
      • server.go:算力池模型的具体实现
    • center.go:算力池的控制中心
    • computenode.go:算力池的计算节点
    • client.go:请求发起方

    server

    server.go中提供了如下的方法:

    • NewServer():创建一个Server的实例,用于之后的操作
    • Start():启动RESTful服务
    • RegisterRoutes():注册RESTful提供的接口
    • SetHard():设置计算难度
    • GetHard():获取当前的计算难度
    • Hello():用于判断节点是否存活的接口
    • Register():计算节点向中心节点注册
    • PoW():Proof of Work的简单实现
    • DoWork():中心节点接收PoW请求的接口

    center

    算力池的控制中心,调用server.go中的方法,对外提供PoW计算接口,以及算力池内部计算节点的注册。

    computenode

    向控制中心注册本节点信息,并提供PoW计算服务。

    源码可以从这里获取。

    本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。

  • 相关阅读:
    Hdu 4496 D-City
    Hdu 1213 How Many Tables
    T1387:搭配购买(buy)
    codevs 2597 团伙
    Hdu 1232 畅通工程
    RQNOJ PID331 家族
    提高组day4
    xjoi2018提高组训训练25
    关于upp和lower
    矩阵快速幂求fib
  • 原文地址:https://www.cnblogs.com/lianshuiwuyi/p/13283340.html
Copyright © 2011-2022 走看看