- 博客(11)
- 收藏
- 关注
原创 百行代码简单实现区块链DPOS(股份授权证明机制)挖矿机制
源码地址:https://github.com/corgi-kx/blockchain_consensus_algorithm/tree/master/dpos股份授权证明机制是POS的一个变种,简单来说就是你手里有选票(币就相当于选票)。这时一些正在竞选超级节点的大节点们说把票都投给我把,等我当选了超级节点,我吃肉你喝汤,岂不美哉?然后你就信了,把票投给了竞选节点,这些节点竞选成功成为超...
2019-12-11 16:31:12
1020
原创 代码实现pbft共识算法,并进行Demo展示
参考资料:https://www.jianshu.com/p/fb5edf031afdhttps://www.cnblogs.com/gexin/p/10242161.html本demo为pbft共识算法的代码实现,如果想了解pbft的详细信息请自行浏览参考资料本demo展示了pbft的部分功能(没有写主节点轮循机制),写的并不严谨,仅作为对pbft的了解用途实现功能:...
2019-12-10 16:10:35
9414
25
原创 代码实现raft共识算法,并进行Demo展示
参考资料:http://thesecretlivesofdata.com/raft/https://www.cnblogs.com/mindwind/p/5231986.htmlhttps://blog.youkuaiyun.com/s15738841819/article/details/84286276源码地址:https://github.com/corgi-kx/blockchain_...
2019-12-04 08:53:43
3369
原创 基于golang编写的区块链公链demo
>曾经有个疑问,为何比特币生成地址要这么麻烦,既然非对称加密只拥有公钥是无法倒推出私钥的,为何不直接使用公钥当地址,而是对公钥进行hash多次来取得地址,直到最近看了篇文章才明白,该文章提到量子计算机是可以破解椭圆曲线加密的,他可以通过公钥快速寻找到私钥信息。但是量子计算机很难逆转Hash算法(或者说需要2的80次方个步骤来破解Hash),所以你的比特币放在一个未支付过的地址中(根据UTXO交易模型,输出存的是公钥Hash而不是公钥,这同样解释了为何UTXO输入存的是公钥而输出存的是公钥Hash)是相当安全
2019-11-20 17:13:36
1533
转载 关于分布式CAP定理,为什么不能同时满足三个特性
在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。## 一、CAP的定义Consistency (一致性):“all nodes ...
2019-11-12 17:26:00
272
转载 详解区块链P2P网络
原文出处:http://keeganlee.me/post/blockchain/20180313根据前一篇文章《从微观到宏观理解区块链》我们已经了解到,微观上,区块链本质就是一种不可篡改且可追踪溯源的哈希链条;宏观上,还具备了另外三个基本特征:分布式存储、P2P 网络和共识机制。分布式存储无非就是网络上大部分节点都保存了整条区块链,这容易理解也不复杂,所以就没必要再展开细讲了。但区块链...
2019-10-23 15:02:48
891
原创 golang日志工具,基本满足日常开发需求
花了两天时间写了个golang日志小工具,基本满足日常开发要求特点支持定向输出日志到指定文件支持一键隐藏调试信息支持彩色打印显示输出日志的类名、函数/方法名 源码地址:https://github.com/mikesen1994/logcustompackage log//日志等级const ( Leveltrace logType = iota //基本输出,...
2019-09-27 17:44:35
418
原创 服务器数据的实时备份与定时备份(rsync+inotify)
需求:对服务器数据进行实时备份,不能丢失任何已生成数据思路:利用inotify检测需要备份目录下的数据,有任何改动立即调用rsync进行数据同步。并且在备份服务器上对同步数据每天进行定时备份(如果两台都是阿里云服务器,建议开通内网通讯,这样不会影响外网流量而且传输速度很快)主服务器ip:172.18.218.76备份服务器ip:172.18.218.77安装调试inotify(只需在主...
2019-09-17 14:27:31
1340
原创 密码学家的工具箱(golang代码实现)
本文参考《图解密码技术》第三版对称密码是指加密解密时用同一种密码,下面代码采用AES进行加解密,私钥长度只支持128,192,256位的字节数组。AES加解密的代码应用:package mainimport ( "bytes" "crypto/aes" "crypto/cipher" "fmt")func PKCS5Padding(ciphertext []byte...
2019-09-10 22:26:26
9623
原创 golang 使用RSA生成公私钥,加密,解密,并使用SHA256进行签名,验证
话不多说直接上代码:package mainimport ( "crypto" "crypto/rand" "crypto/rsa" "crypto/sha256" "crypto/x509" "encoding/hex" "encoding/pem" "errors" "fmt")func main() { //rsa 密钥文件产生 fmt.Println("-...
2019-08-06 16:07:14
4949
1
原创 Fabric源码流程分析之Orderer篇
Fabric源码流程分析之Orderer篇orderer模块源码开始阅读目录:hyperledger\fabric\orderer\common\server\main.go一.首先通过kingpin技术(命令行解析工具)接收命令行命令,如果是 “version”则直接打印当前orderer版本信息二.然后通过viper技术(管理配置信息的工具)加载配置信息,将当前目录下的的orderer.yam...
2019-08-02 16:32:13
8380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人