硬着头皮接下了比特币源程序区块链的研读。首先是焦虑,一眼望去如汪洋大海,白天我还在想着如何向higer解释我的不自量力,晚上就收到了他催促领任务,领就领,又不是读。
这一周就开始了眉毛故意一把抓。
给自己大致分了几个步骤:
1.下载c++和源程序,安装调试
2.到网上搜索别人是如何解读的
3.重读《精通比特币》
4.记录下每一步遇到的问题
下面是点滴所得:
为什么我要领区块链的任务呢,因为我认为自己相对来说熟悉一些,感谢那时候自己做的笔记。可是打开程序,都是一些没见过的,甚至区块链程序在哪都找不到,猎物都发现不了,更甭提打猎了。我以为就看不懂了,但总得干点什么吧,就下载了C语言,还有bitcoin的程序。看了几个程序说明。有进步,那是我自己找来的,总会有办法的。
由于和AK47同时领了同一一个任务,期间伙伴问到了比特币是哪种语言,当他说是python时,我一愣,因为一直以来我都认为是c++,还记得是早期higer说过的,我只是在脑子里有了印象,并没有刻意的多想,其实应该记下来的。
我采用读别人程序的办法,先看看别人的解读。小技巧是大量找来资料,其实就是广撒网。
通过阅读,有以下收获,先说知识点的
1.比特币脚本是由一系列指令和数据构成,每个指令占用一个字节,数据是由数据头部的长度决定。
2.比特币脚本:锁定脚本和解锁脚本
锁定脚本和UTXO对应,一个UTXO对应一个锁定脚本。
解锁脚本,就是谁能够提供一个签名和一个公钥,让这个脚本运行通过,谁就能花费这笔交易。
3.比特币的执行流程基于堆栈模型
比特币脚本被设计成栈来运行的虚拟机指令,它只有有限的几种指令,并且故意被设计成没有循环、条件跳转。所以,比特币脚本不是图灵完备的语言。
4.所谓挖矿难度,指的是要求的二进制散列值末尾0的个数,而散列值是随机生成的,除了穷举没有别的办法,要求的0个数越多挖矿的难度就越大。
打开《精通比特币》,发现附录里交易脚本的操作符、常量、符号的描述,一下子解决了完全看不懂的状态。只要想找,总有办法。后来倒着读这本书,试图找出点什么来。
至于说架构,我找了两个自己能够看的懂的
这就是我的第一周,连区块链的程序在哪里都没有找到。
群主,你看着办吧,爱咋咋地