区块链程序研读——第一周

    硬着头皮接下了比特币源程序区块链的研读。首先是焦虑,一眼望去如汪洋大海,白天我还在想着如何向higer解释我的不自量力,晚上就收到了他催促领任务,领就领,又不是读。

图片发自简书App

    这一周就开始了眉毛故意一把抓。

    给自己大致分了几个步骤:

1.下载c++和源程序,安装调试

2.到网上搜索别人是如何解读的

3.重读《精通比特币》

4.记录下每一步遇到的问题

下面是点滴所得:

为什么我要领区块链的任务呢,因为我认为自己相对来说熟悉一些,感谢那时候自己做的笔记。可是打开程序,都是一些没见过的,甚至区块链程序在哪都找不到,猎物都发现不了,更甭提打猎了。我以为就看不懂了,但总得干点什么吧,就下载了C语言,还有bitcoin的程序。看了几个程序说明。有进步,那是我自己找来的,总会有办法的。

    由于和AK47同时领了同一一个任务,期间伙伴问到了比特币是哪种语言,当他说是python时,我一愣,因为一直以来我都认为是c++,还记得是早期higer说过的,我只是在脑子里有了印象,并没有刻意的多想,其实应该记下来的。

我采用读别人程序的办法,先看看别人的解读。小技巧是大量找来资料,其实就是广撒网。

    通过阅读,有以下收获,先说知识点的

1.比特币脚本是由一系列指令和数据构成,每个指令占用一个字节,数据是由数据头部的长度决定。

2.比特币脚本:锁定脚本和解锁脚本

锁定脚本和UTXO对应,一个UTXO对应一个锁定脚本。

解锁脚本,就是谁能够提供一个签名和一个公钥,让这个脚本运行通过,谁就能花费这笔交易。

3.比特币的执行流程基于堆栈模型

比特币脚本被设计成栈来运行的虚拟机指令,它只有有限的几种指令,并且故意被设计成没有循环、条件跳转。所以,比特币脚本不是图灵完备的语言。

4.所谓挖矿难度,指的是要求的二进制散列值末尾0的个数,而散列值是随机生成的,除了穷举没有别的办法,要求的0个数越多挖矿的难度就越大。

    打开《精通比特币》,发现附录里交易脚本的操作符、常量、符号的描述,一下子解决了完全看不懂的状态。只要想找,总有办法。后来倒着读这本书,试图找出点什么来。

至于说架构,我找了两个自己能够看的懂的

图片发自简书App
图片发自简书App

这就是我的第一周,连区块链的程序在哪里都没有找到。

群主,你看着办吧,爱咋咋地

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容