GO
文章平均质量分 55
_观众
学而不思则罔,思而不学则殆
展开
-
TLS原理及实现
概念对称密钥既可以加密也可以解密的密钥非对称密钥密钥分为公钥和私钥两部分,公钥用于加密和验证签名,私钥用于解密和签名证书可理解为身份证,证书由证书机构颁发(可信第三方),证书中包括证书所有者的相关属性信息,并且证书可由证书机构的公钥进行验证,杜绝身份伪造。证书链由根证书衍生而来,例如根证书R给A颁发证书,A给B颁发证书,B给C颁发证书,最终R->A->B->C形成一条证书链。证书链确保了次级证书的合法性,并允许验证,验证的过程是逆向的C->B->A原创 2022-05-28 11:25:11 · 3255 阅读 · 0 评论 -
Gossip实现
gossip实现原创 2022-04-10 15:21:36 · 462 阅读 · 0 评论 -
base58 base58check 编码
base58、base58check编码的go实现原创 2022-03-30 00:00:00 · 1410 阅读 · 0 评论 -
Merkle Tree
基于比特币中merkle tree功能的实现原创 2022-03-28 00:15:00 · 2370 阅读 · 0 评论 -
算法与数据结构
算法与数据结构原创 2021-09-08 11:46:41 · 85 阅读 · 0 评论 -
docker-compose 搭建 etcd 集群
搭建etcd集群准备工作安装好 docker 与 docker-compose下载etcd镜像:docker pull bitnami/etcd:latest最好关闭防火墙。如果遇到外部主机能ping通linux,但是不能访问docker容器的情况,需要开启防火墙,然后再关掉防火墙,最后重启docker即可。docker-compose.ymlversion: "3.0"networks: etcd-net: # 网络 driver: bridge原创 2021-04-06 19:56:20 · 2521 阅读 · 4 评论 -
protocol buffers
关于 protocol buffers(protobuf),可以查阅 protocol buffers 官方文档,一切你想知道的如何安装、如何编译 .proto 文件、相关的语法都有详细的说明。注意:由于技术的更新迭代快,有可能对官方文档的更新不是那么及时,可能官方文档会导致一定的误导(亲历)。本文的记录有限,其中包括:了 protoc 工具在安装时的失败复盘、proto 常用语法,以及关于 GRPC 生成 golang 存根。一、环境配置protobuf 对应的工具为 protoc,即首要是安装原创 2021-02-06 15:11:36 · 161 阅读 · 0 评论 -
Golang优雅初始化结构体
所谓优雅,即能够让扩展性更好,便于在后期扩展的时候,减少开发时间,以及更加易于添加功能。具体的实现,就是一次对于闭包的灵活使用(阅go-micro)。从示例代码main.go、service.go、options.go的实现来说明。main.gopackage mainfunc main() { srv := NewService( Name("golang"), Age(9)...原创 2018-12-02 18:01:53 · 8309 阅读 · 1 评论 -
简单插件式编程实现
最近接触到插件式编程,感觉是一种不错的思想。分享给大家两种实现Golang的插件式编程C++的插件式编程Golang的插件式编程实现原理Golang的插件式实现主要依赖于自身的断言机制和接口实现。通过统一插件的接口后,规定实现的接口必须满足指定接口的实现,然后注册到插件管理类,外部使用时直接通过插件管理对象实现调用指定的插件。注意:插件式编程与插件是有区别的,插件式编程是一种规...原创 2018-12-02 13:46:59 · 2842 阅读 · 1 评论 -
Golang洗牌算法
两种洗牌算法:1、Fisher-Yates2、Knuthtype Handle struct {}Fisher–Yates 洗牌算法// Fisher-Yates正向func (h *Handle) shuffle_FisherYates_Forward(cards []uint32, r *rand.Rand) { var size int = len(cards) var ...原创 2018-11-04 19:43:39 · 1726 阅读 · 0 评论 -
Golang队列中间件开发总结
目前很多框架中都存在消息队列的中间件,例如ActiveMQ,RabbitMQ,ZeroMQ,Kafka等,基本都是封装好,足够我们使用。但是,我们如何自己去实现一个消息队列中间件呢? 由于公司需求,进行了golang实现消息队列中间件的开发,这里做一个总结,把自己的一个想法和实现的经验分享给大家,非个人开发没有源码提供,如有不足多多指教。 主要内容包括:队列服的作用与特性,什么试试有状态与无状...原创 2018-09-03 00:38:48 · 6945 阅读 · 1 评论 -
结合CGo对切片slice简单实现
在对自定义slice实现的过程中,体会到以下两点: 1、Go封装得确实比较好,但是Go中的指针也因此受到了大大的削弱,在Go中指针平常也就只能用来做引用传递。 2、对于Cgo的资料太少了,为此买了两本书,也就一本有略微提及。我希望你能从代码中找到你对CGo存在的疑问和解决办法。不多说,上代码package main/*#include <stdio.h>#inclu...原创 2018-08-06 23:48:19 · 1371 阅读 · 0 评论