- 博客(12)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 go语言调用约定和多返回值的实现原理
go语言调用约定和多返回值的实现原理go简单代码反汇编用简单的代码用以分析go的调用约定及多返回值的返回方式。package mainfunc vals(c, d int) (a int, b int) { e := 1 f := 2 a = c + d + e + f b = d * 2 return}func testMutil() { i, j := vals(1...
2019-03-12 09:46:07
1885
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 用python实现简版区块链-网络
用python实现简版区块链-网络引言到目前为止,我们所构建的原型已经具备了区块链所有的关键特性:匿名,安全,随机生成的地址;区块链数据存储;工作量证明系统;可靠地存储交易。尽管这些特性都不可或缺,但是仍有不足。能够使得这些特性真正发光发热,使得加密货币成为可能的,是网络(network)。如果实现的这样一个区块链仅仅运行在单一节点上,有什么用呢?如果只有一个用户,那么这些基于密码学的特性,又...
2019-03-01 15:49:07
2222
14
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 用python实现简版区块链-交易(2)
用python实现简版区块链-交易(2)引言在这个系列文章的一开始,我们就提到了,区块链是一个分布式数据库。不过在之前的文章中,我们选择性地跳过了“分布式”这个部分,而是将注意力都放到了“数据库”部分。到目前为止,我们几乎已经实现了一个区块链数据库的所有元素。今天,我们将会分析之前跳过的一些机制。而在下一篇文章中,我们将会开始讨论区块链的分布式特性。奖励在上一篇文章中,我们略过的一个小细节...
2019-03-01 15:44:43
2006
5
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 用python实现简版区块链-地址
用python实现简版区块链-地址目录基本原型工作量证明持久化和命令行接口交易(1)说明本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,但根据个人的理解进行了一些修改,大量引用了原文的内容。引言在上一篇文章中,我们已经初步实现了交易。相信你应该了解了交易中的一些天然属性,这些属性没有丝毫“...
2019-03-01 15:23:13
1259
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用python实现简版区块链-持久化和命令行接口
使用python实现简版区块链-持久化和命令行接口引言到目前为止,我们已经构建了一个有工作量证明机制的区块链。有了工作量证明,挖矿也就有了着落。虽然目前距离一个有着完整功能的区块链越来越近了,但是它仍然缺少了一些重要的特性。在今天的内容中,我们会将区块链持久化到一个数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作。本质上,区块链是一个分布式数据库,不过,我们暂时先忽略 ...
2019-02-28 09:33:47
857
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用python实现简版区块链-工作量证明
使用python实现简版区块链-工作量证明说明本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,但根据个人的理解进行了一些修改,大量引用了原文的内容。回顾在上一节,我们构造了一个非常简单的数据结构 – 区块,它也是整个区块链数据库的核心。目前所完成的区块链原型,已经可以通过链式关系把区块相互关联起来:每个...
2019-02-27 10:25:45
2198
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用python实现简版区块链-基本原型
使用python实现简版区块链-基本原型说明本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,但根据个人的理解进行了一些修改,大量引用了原文的内容。引言区块链是 21 世纪最具革命性的技术之一,它仍然处于不断成长的阶段,而且还有很多潜力尚未显现。 本质上,区块链只是一个分布式数据库而已。 不过,使它独一无...
2019-02-27 10:11:16
1699
原创 gdb调试容器中fabric链码
gdb调试容器中fabric链码使用场景fabric的链码安装后回直接生成一个docker容器,并在其中运行。我们修改了链码,必须要重新部署非常麻烦,fabric 为我们提供了开发模式,可以直接进行开发和调试。但是有没有办法走生产模式的方法直接对容器进行调试呢?当然是可以的。步骤首先需要链码为可调试的。默认情况下,链码编译出来是有符号表的,但是局部变量被优化了,导致我们没法调试。所以我们...
2018-12-11 15:53:17
998
原创 C语言实现协程(三)
回顾协程常用于IO密集型,但是目前我们仅仅是实现协程的切换与调度,并没有实战检验我们的协程库。接下来我们就用我们自己实现的协程库,实现一个非阻塞的socket服务器。实现思路我们已经实现了协程的切换恢复等功能。 现在我们要实现的是,当协程一个IO没有数据时我们不等待,而切换到下一个IO进行处理。 如果做一个比喻的话,大概就是像上学的时候老师一个一个听学生背课文。学生一个一个排好
2018-01-11 12:47:21
1606
原创 C语言实现协程(二)
基本思路上一篇已经提到如何使用ucontext组件来实现上下文切换。而我们要实现协程就需要实现一个调度器用来调度管理协程、协程恢复、协程切换等功能。用调度器来管理当前执行的协程,及并在调度器,并通过调度器管理所有协程的列表。协程协程需要执行目标函数的功能,并具备保存自身栈区、上下文和执行状态的功能。则协程结构体如下:enum Coroutine_State{DEAD, RE
2018-01-10 16:02:58
1097
2
原创 C语言实现协程(一)
引言在使用socket编程时,我们会用到accept、connect、recv、send等函数,这些函数在没有数据到达时,会阻塞等待IO数据的到达。这不利于我们处理多个连接并快速响应。一种方案是,服务端每accept一个连接,就创建一个新的线程用来处理这个连接。这会导致线程过多,而且线程之前切换开销很大。这就可以使用到协程了。当然不止socket这种可以使用协程,IO密集型都可以使用协程,无论
2018-01-09 14:49:10
10121
3
原创 zip文件格式
zip文件格式。整体结构简单归纳总结下,zip文件格式由文件数据区、中央目录结构,中央目录结束标志组成。其中中央目录结束节又有一个字段保存了中央目录结构的偏移。
2017-10-27 17:14:39
8578
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人