00:00
我们在下载好的这个代码里边,如果我们去用get克隆下来的一个get仓库,所以如果用get命令是可以在里边看到它的各种状态的,比如说我们可以看到他的提交的log,这就是呃,我们现在下的这一份源码,他所有的这个提交历史。我们现在如果说大家是大家可以看到我下的这一份源码,目前的状态其实跟大家可能是不一样的啊,因为我下的会比较早一点,呃,现在这个提交,这还是什么时候的提交了。哦哇,我这份代码好老啊,这个应该是在在二份的时候的一个提交。所以我我这份代码版本应该还是比较老的啊,大家如果要是说想要去看它当前的稳定版本的话,可以用tag的这个命令,大家可以看到现在它已经出了这么多个版本了,如果大家用的版本很很旧的话,就是0.9几的话肯定是不行的啊,就至少应该我们用到到现在为止应该用到那个1.8几的这个版本。
01:12
大家如果愿意的话,用1.8.9,我觉得应该是可以的,或者现在最新应该有一点08:17。如果大家想要用这个稳定版本的一个代码的话,大家现在就直接下下载下来,这个代码有可能不是稳定版本,所以说有可能会跟我们那个编译的时候会出各种样各样各样的问题,大家如果要想切换到一个稳定版本的话,可以get checkout,打这个命令,后面跟上就是我们要切换的版本,比如说一点。08:17。来看,这个变化还是挺大的,有这么多文件变化,1300多个文件变化。当他这一个这么多文件变化都剪出之后,我这边的代码就已经切换到了一点08:17的这个稳定版本,本来我的版本是1.8.0的版本,好在这里跟大家说一下,就是我的这个。
02:17
已经装好的盖的version是1.8.0 stable和go的版本是1.9.3,大家可以参考一下其他同学装好的,如果是一点十点零或者一点十点三的话,大家装的这个盖的版本是什么?是刚刚才哪两个同学说已经装好了,11点08:14啊。1.8哦哦,那看来就是我的这个代码确实整体是还是有点落后对吧,就是一点08:18都没有这个提交,对盖的代码本身应该应该是越新的代码应该是越没有问题的,按道理是这样的,但是跟go的兼容性上面可能就会就会有一点,就是如果本身盖的代码很新,Go的版本又偏老的话,就可能会有各种各样的问题,而且在在网上我是看到好像说1.9.1的这个版本编译确实是会报错的,呃,因为我看到有一些文章就是说1.9.1报错的话,要升级到1.9.2,然后就没有编译错误了,所以呃,这样的一些环境配置的问题也是经常有的。
03:52
那我大概的就是说一说这个,我们文档里边的这一个接下来。
04:01
需要让大家注意的几个点啊,呃,首先接下来文档里边会说到一个,我们怎么样去启动节点同步之前,就是休息之前,我们这个启动节点同步的时候,启动全全节点的时候,大家可以看到我其实就是在盖后面加了一个杠杠,呃,大家可能要注意啊,这个应该是杠杠啊。Word里边它可能会自动把这个两个小杠合成一个,合成一个长杠,大家不要不要把这个打错了。杠杠data,然后后面跟一个目录,像这里的话,如果要是后面只跟一个点的话,那就是当前目录,这这大家知道啊,大家看这个命令不一样的一点是后面它加了一个参数。这个参数叫杠杠SK mode fast。这是什么意思呢?大家可以直接参考这个文档,里面给大家写的就是这个,顾名思义,这就是同步的模式,同步区块的时候的模式默认值是什么?默认值就是负FU,负全节点模式去同步,所以如果我们什么都不加的话,它就是要下所有的这区块的这个内容的,如果我们想要快一点的话,我们就可以采用这种模式,后面跟一个fast。
05:23
在这种模式下,就会用所谓的这个快速模式去同步区块,那他所要做的是什么呢?它是指下每个区块的内容,就是所谓的把区块头和区块体都下下来,数据有了,但是不验证里边的每一笔交易,就是只下数据。不验证交易相当于不验证它中间的状态,只是到最后再去获取一个最终的所有的状态,所以大家可以看到它的这个节省的时间,大部分就是节省了这个交易验证的一个时间,节省了这个中间去获取状态的时间,呃,这是这个fast模式啊,另外就是说还有一种同步模式s mode,它后面的参数可以跟跟三种,一种是负,一种是fast。
06:19
还有一种是应该是最后出的一种就是light,就是我们说的清节点模式,那那种模式的话就会更简单一些,我们说新节点是什么?它就是连区块都不下。就是这个fast模式还会下区块头和区块体都会下下来,Light模式新接代模式是区块都不下,它就是只要获取一个最终的状态,所以理论理论上来讲,Light模式应该是就是最最轻最简单的一种模式,但是这种模式就是我还没有用这种模式去去试过啊呃,因为light模式本身这个版本出的是比较后来才出的,它的稳定性会比较差一点,就在我一开始去就是做这个区块同步的时候,当时只有两个选项,就是复合fast。
07:10
呃,就是light一直都是以太坊,就是大家对这个要求很很很大嘛,大家都觉得这个同步的时候实在太痛苦了,一直要求他要出这个light,但是呃,就是在去年的时候一直是没有出来的,今年出来了之后我也还没有尝试过,大家如果感兴趣可以就是也也是等大家这个不要耗自己流量啊,就是有合适的网络的时候,可以去尝试尝试启动这样一个节点,用light模式去启动,呃,另外多说一句,是像这个同步模式的这个参数,大家如果看有一些文章或者一些这个网上的资料。可能会发现他不是这么写的,不是杠杠symo fast,他可能直接就是杠杠fast,呃,现在我觉得,呃不知道,我没有考察过,就是这个对GA的版本,到底是哪个版本开始不支持,就是杠杠fast,这就是以前的。
08:03
杠杠s mode fast的写法,那现在的话,杠杠fast已经被我们这个写的杠杠s mode fast替代了,所以大家如果是我们装的盖版本都比较新的话,如果大家愿意尝试这个比较比较旧的版本,我我不知道是不是还兼容刚刚fast,大家也可以去做尝试啊。呃,接下来就是还还提到一点,就是说前面我们没有加别的东西的时候,没有指定特别指定,这是针对某个网络的时候,我们同步的就是主网,就是以太坊主网的区块,那如果说我们想要同步测试网络,怎么同步呢?能看到下面还有这么一句啊。Guess,杠杠test ne,然后后面都一样,杠杠对DR,然后杠杠think mode,所以杠杠test net这一句就表示我们现在要启动的这个节点连接到的网络是以太坊的测试网络,那这个测试网络我们之前说到的有好几个测试网络嘛,它这个测试网络是哪个?对,肯定就是RO,因为那是我们的公共的这个大家认为那是主测试网络嘛,所以这个test,杠杠test ne就是就是RO,那如果说我要想去连接rink,怎么连接呢?
09:26
盖杠杠。就是还有这样一个参数,呃,但是我我查过官方文档是没有杠杠口吻的啊,就是另外的这个就是parity他的那个客户端的这个这个呃,测试网络是没有这一个对应的参数的,直接启动的参数的,呃,所以他可能需要用其他的方式或者直接用parity去连接才才可以,所以呃,这也是这个best的特点呢,它主要就是跟这个RI by网络连接的,是会比较好一点,所以单独有一个参数。
10:00
嗯,好,这基本上就是我们前面的一些这些内容,因为大家等一下,可能我们现在网络的状况也不好,大家也会比较耗流量,所以节点同步这块可能大家现在就不试了,想试的同学可以就是先就是可以敲一个这个命令,然后看他那个出来开始同步节点的时候就把它关了也是可以的,就是大家可以看看它是怎么怎么玩的,因为如果要是一直同步节点的话,这个咱们也等不了那么长时间。再往后面其实就是咱们就是其实是就是这一部分的一个主要的目的啊,就是咱们其实想搭一个自己的私有链,呃,大家不要看着这个好像名头很大,其实大家如果往后翻的话,就发现其实非常简单。他的做法。主要是有个什么呢?是有个相当于大家可以认为是一个配置文件,有一个这样的一个Jason文件,作为它的初始创始状态的一个配置啊,有了这个文件之后,一条命令就把这个区块链就初始化了,大家可以看一下这个命令是什么,是guess杠杠,Data DR,这还是跟我们刚才一样,对吧,要指定它的数据目录,呃,啊,这里的这个目录写的就很复杂,就是说你自己可以随便去指定,后面是it,然后跟上我们上面指定的这个文件就可以了。
11:27
这个其实也是非常简单的一条命令,呃,我建议大家就是比较简单的命令,还是不要直接去copy,最好还是自己去手敲一遍,就是感觉会会好一点,印象会深刻一些。呃,上面这条命令其实就是in,那就是初始化,相当于用我们这个配置文件初始化了一条自己的区块链,那怎么启动呢?要注意就是我们上面配置文件里边会给我们自己的这一条私有链定一个ch ID,也就是我们这条链唯一的一个标志。
12:04
一个一个ID,这里是随便给了一个15,大家最好是这个,呃,不要给到跟我们的主网或者测试网重复的ID里面,比如说像我们之前就就已经知道的就是主网ID是一。呃,测试网的ID是应该是三对吧,RI by是四,像这些大家就都不要,包括那个Co是42,这些ID大家不要给别的ID,随便自己想给什么给什么,有了这个ID之后,我们启动的时候就是下面这条命令就可以搞定了,Guess还是刚刚data DR指定数据目录跟刚才的要指定的一致。然后后面带一个参数杠杠network ID跟上我们前面创始状态的指定的那个ID就可以了,然后大家就可以看到它有有各种各样的这个输出,表示我们节点正常启动,就这么简单,就就大概这么一过一遍的话,其实它就是这么简单,所以关键还是等一下,我们要自己去去做尝试啊。
13:13
呃,那那我们还是接着我这里先给大家演示一遍这个私有链,就是我们所说的这个自己的私链到底怎么搭建这样一个状态,呃,其实这个都对于对于大家来讲,可能一看这个文档写这么简单,可能都没有演示的必要了,对吧?呃,所以我也就是大家如果觉得想听,可以可以看看我这边的一些操作,然后我会跟大家说一些里边的一些参数的一些状态,然后如果大家觉得自己手头那个没有装好,也可以就是先装着,然后之后大家看文档,我相信这些问题都都很容易解决啊,相对来讲可能环境问题确实更棘手一些,更不容易解决好,我们看,哎,我刚才没有把它复制好啊,实际上这个这个配置文件如果大家觉得麻烦的话,我觉得不敲也可以,因为它的其实这个基本的这个对象,它的这个。
14:14
分值还都是很简单的,只不过就是它这个写起来可能反而会麻烦一点,这么多的引号冒号对吧?这Jason的这个格式,所以大家如果要是不想敲的话,我觉得可以复制,但是大家最起码是要知道它到底什么意思,比如说这里前面这个config,那就是我们创世区块里边所有状态的一个配置了,这里面最主要的一个配置就是配它的这个。网络的号码对吧,就就是之后我们要连的那个network ID,这里叫做ID。后面大家可以看到有一个参数叫difficulty。这就是难度设置,如果大家想要自己尝试一下的话,可以把这个调的很大,我现在给的这个数其实是不算大的啊,其实是很小的一个数,大家如果就是看到其他的一些教程的话,有可能这个数字要比我现在这个大很多,呃,大家也可以照着其他的一些,就是随便改一个数字,看一看之后,我们就会看到它的就差别在哪里,大家肯定可以想到,这既然是难度,难度系数嘛,设置好了之后,如果这个难度越大,肯定到时候挖矿的时候就就会越累,就可能出块就没那么快,但是如果要是像我们这个设的比较小的话,可能也有不好的一点,就是说有时候我们可能就是想看它两个块中间的那个状态是什么样子的,呃,这个可能就出画太快,我们就来不及看,所以这就根据大家自己的需求来设置,然后还有一个是GA limit,这个是放在里面的,这就是相当于这是。
15:53
我们整个区块的这个就是要求一个块里边最多能有多少GA,是有一个上限要求的,所以这个也是有,最后面还有一个lo,这个lo大家看到前面这其实就是一个地址,Alo本身是一个,呃,它它相当于也是一个对象,然后它里边的每一个元素的这个键值呢,键就是一个地址。
16:21
然后它的值又是一个对象里边主要的这个值就是它的余额balance,然后给了一个数,呃,那大家觉得这个log他是想想干什么,这这这件事情。他为什么要前面这个,大家应该能看出来,这是一个地址对吧,就是这么长一串,然后看起来就差不多是40个字节,所以这一个一个地址,然后后面直接分配一个balance,这就是表示在创世状态的时候,一进来这个地址上就有这么多钱,所以大家可以想象就是那个,呃,以太坊为什么可以可以这么配置,他一开始不是有那个矿前玉挖嘛,不是,呃不不不叫玉挖,就是他众筹的时候不是会有预售嘛,对吧,有7200万的这些仪态都是提前就就都已经预售出去的,所以说他一开始就会有这样的lo的一个分配,好在这里的话就给大家演示一下,我把自己的这个地址,大家可以看一下啊,我要。
17:36
Copy一下自己的地址,把它放到这里哦,这个word里面,这一点太糟糕了,我们还是把它copy到里面吧。呃,我们的歌在这里啊,好,我直接可以,呃,大家如果启动这个自己的链的话,可以自己定义定义位置,呃,最好是不要跟我们刚才下载的这个源码放在一起,这个确实是不太建议的啊。呃,比如说我可以直接在外面去去弄一个MY这样一个目录,然后我会在MY下面。
18:31
建一个叫做genesis.jason的一个文件,它就是我们的创世区块的配置文件,然后我们把刚才这个复制过来,刚才我们是希望改动这个,对吧。我把自己的账户地址放在这里,然后我把下面这一行直接删掉吧,呃,大家看我,我希望创建的一条链,其实就是它的ID是15,然后它的难度是2000比较小啊,当然这不是2000啊,这是一个一个这个字符表示该limit是2100万alo,我的这个账户里边直接就给我还是给自己钱多一点啊,因为这个单位是尾,大家应该知道。
19:36
这个好像也不是很多啊,好,我们先把这个先保存一下,接下来我们就要启动自己的丝链了,然后启动的时候大家用什么来启动呢。还是得找到刚才咱们安装的gas的目录,所以我这里没有把那个目录写到自己的这个环境变量里边,所以说还是用我们刚才说的这个带着目录的这个形式去启动啊。
20:08
然后杠杠data DR后面的这个DR我当然不能指定,就是直接点就是当前,那是当前目录,我现在在的当前目录是我们源码的这个目录,对吧?所以我肯定至少是要把它放到外面去,放到MY下面,呃,我们直接把它放到machine下面就可以了,好,这是我们指定的数据的目录,然后后边还要指定in,好,大家注意,就是后面的geneis Jason也不在现在的目录下面,对吧?所以我们也要指定指定目录在同样是在我们的machine下面的geneis。好,这样我们就可以启动一个撕裂啊,大家可以看到啊,这不是启动的撕裂,这是初始化一个撕裂,大家注意啊,大家可以看到很简单的几个几几行,这个输出就告诉我们了,这里边已经设定了一些基本的参数,而且最后一句会告诉我们,它已经把初始的状态成功的写入进去了,大家可以看到这个database叫做light Cha data,就是轻练数据,我们到这个match下面去看一下啊,又有一个盖文件夹出来,大家可以看到这里有一个就是light data的一个目录,所以我们的所有的初始的这些信息都是记录在这里的,初始状态都是都是写在这里。
21:48
好,接下来我们的这一个,呃,自己的丝链其实已经初始化好了,那我们怎么样去就是启动我们这个思链呢,怎么样去看到我们的这个思链真正跑起来呢?大家可以这么去做,还是guess,但是现在大家注意盖的目录啊,我们到外边来,现在盖不在match下面,那我们还得退回到上Q的B下面的盖,然后杠杠data DR,现在我们可以用点了,因为它本来就是在当前目录嘛,对吧。
22:31
大家记得后面还有一个对network ID,因为如果我们不带任何参数的话,连接到的肯定不是自己的四链。连接到的应该是主网对吧?如果我们要是指定测试网络的话,那就杠杠test net,如果指定自己的思链的话,那肯定是要指定咱们定义好的那个network和ID,这样才可以好,我们就直接先先这么启动一下,大家可以看这就已经启动起来了。
23:00
跟好像就是跟我们刚才那个直接启动连接主网去同步区块的那个状态其实是一样的,对吧,就输出都很像,只不过是刚才我们可以看到它最后一句开始是start去去同步区块了,那我们现在这是自己的思链,所以上面什么东西都没有。九。就是这样一个干净的一个区块链,他什么也不会做。大家可以可以看,就是这么简单就把自己的思念跑起来了,这东西有什么用呢?那当然我们的区块链既然建立起来,那guess既然是一个客户端,肯定咱们就是在里边可以跟区块链去做互动的,那等一下再跟大家就是讲这个到底去怎么跟他去做互动啊好,大家先把刚才这个该配的环境还是配好啊,这一部分确实比较简单,所以就是大家可以稍着听,就就把这这一块听过之后,就是如果没有来得及跟着我一起做这块的同学,大家可以下来之后看着文档再敲一遍就可以。
我来说两句