![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
文章平均质量分 81
Coder_Joker
兴趣使然
展开
-
Talk Is Cheap,Show Me The Code: Eth2.0源码解析
eth2.0 源码解析原创 2022-11-16 22:30:06 · 291 阅读 · 1 评论 -
Talk Is Cheap,Show Me The Code: 三种语言个人框架压测(Java/Go/Rust)
Java/Rust/Go 个人框架压测原创 2022-09-09 09:45:32 · 528 阅读 · 0 评论 -
Talk Is Cheap,Show Me The Code. Rust
github链接记录2022-05-20记录下rust 吧,学了快一个月了,写个rust框架原创 2022-05-20 17:35:20 · 314 阅读 · 0 评论 -
源码分析-Golang Mutex
锁的实现数据结构type Mutex struct { state int32 sema uint32}一个mutex 总共只占8个字节,因此是一个充分使用位的数据结构state意义:最后3位充当状态的概念第0位: mutexLocked: 表示互斥锁的状态为锁定状态,既是否被某个goroutine所持有,是否已经被加锁第1位: mutexWoken: 是否被唤醒(既某个goroutine尝试获取锁)第2位: mutexStarving:表示当前的互斥锁处于 饥原创 2021-11-19 10:15:31 · 173 阅读 · 0 评论 -
Talk Is Cheap Show Me The Code - 枯燥乏味的leetcode刷题
工作至今,解决过的最难的问题,莫过于实现一个bft 算法,弄懂bft 算法,但是后来发现,在leetcode面前,bft就是毛毛雨昂刷不完的题,一段时间不刷,就忘了思路,关键做不到每天刷(毕竟已经工作了 ????)头疼的刷题啊重刷层次遍历,得重新刷几次汇总滑动窗口的临界条件是right<len(s),而不是 left<right二维数组:arr[m][n] 代表的是n行m列,所以m是列,n是行回溯算法或者说是深度优先dfs算法考虑以下问题什么时候添加到结果原创 2021-11-19 10:10:28 · 212 阅读 · 0 评论 -
源码分析-Golang Map
相关常量解析bucketCntBits = 3 // 代表的是bit bucketCnt = 1 << bucketCntBits // 代表的是一个bucket(bmap)最大存储8个keyloadFactorNum = 13loadFactorDen = 2 // 通过这2者计算得出 负载因子(负载因子关乎到什么时候触发扩容)maxKeySize = 128 maxElemSize = 128 // emptyRest = 0 : 代表该topHa原创 2021-09-17 09:20:41 · 382 阅读 · 0 评论 -
源码分析-Golang Select
实现原理每个select 在编译期间会被转换成OSELECT节点,每个OSELECT节点都有对应的OCASE信息,不同的写法,编译器会有不同的操作select 不存在任何的 case;select 只存在一个 case;select 存在两个 case,其中一个 case 是 default;select 存在多个 case;相关的函数在: cmd/compile/internal/gc/select.go#walkselectcases第一种情况: select 不原创 2021-09-10 11:12:46 · 201 阅读 · 0 评论 -
源码分析-Golang Chan
channel结构体src/runtime/chan.go内部存储是以循环队列的形式存储额type hchan struct { qcount uint // 代表着这队列中总共有多少元素 dataqsiz uint // 创建时的容量设置,既make时候的大小, buf unsafe.Pointer // 存储的数据 elemsize uint16 // chan数据对象的自身大小,既make的时候的参数类型的大小 clos原创 2021-09-08 13:05:31 · 200 阅读 · 0 评论 -
Golang 锁源码分析
锁的实现数据结构type Mutex struct { state int32 sema uint32}一个mutex 总共只占8个字节,因此是一个充分使用位的数据结构state意义:最后3位充当状态的概念第0位: mutexLocked: 表示互斥锁的状态为锁定状态,既是否被某个goroutine所持有,是否已经被加锁第1位: mutexWoken: 是否被唤醒(既某个goroutine尝试获取锁)第2位: mutexStarving:表示当前的互斥锁处于 饥饿模式原创 2021-08-11 09:24:37 · 265 阅读 · 0 评论 -
Hyperledger Fabric 国密改造 & 兼容多证书 & 兼容证书升级
fabric-sdk-java 兼容多证书 允许同个channel中的所有节点(peer/orderer)共用同一套算法体系 允许同个channel中的节点使用不同的算法(peer0.org1.com 使用ecdsa而peer0.org2.com使用SM2) 节点配置错误时,内存增长控制范围内fabric-ca 国密支持 权威机构颁发的证书国密支持...原创 2020-11-15 22:21:13 · 1005 阅读 · 15 评论 -
Java Maven 修改第三方库源码
背景修改fabric-sdk-java 源码,然后涉及到grpc,需要修改grpc的源码工具jd-guiidea步骤创建一个新的maven工程,maven工程的名字任意用jd-gui打开所依赖的第三方库的源码,如grpc-core找到具体的class文件,ctrl+all在新创建的maven工程中,创建package(要与grpc-core所修改的类的package一致)创建一个相同名称的类,粘贴进去,然后修改,使得没有错误(当然这个maven工程的pom包也转载 2020-11-05 09:36:49 · 3201 阅读 · 1 评论 -
Hyperledger Fabric 源码 浅谈
更新日志2020-07-22添加创建channel时候的相关debugOrderer创建channel:路口处理方法为:// Handle reads requests from a Broadcast stream, processes them, and returns the responses to the streamfunc (bh *Handler) Handle(srv ab.AtomicBroadcast_BroadcastServer) error {原创 2020-07-22 21:27:04 · 552 阅读 · 0 评论