00:00
好,呃,刚才其实我也是转了一圈看大家的问题,好像更多的还是在咱们挖矿之后,很多同学会发现有各种各样,就是比方说挖矿失效啊,就是挖不出来啊,或者是就发现那一个会特别的占。呃,就是咱们的存储空间对吧,就是这些问题,呃,就是有时候可能看起来比较随机,但是一般情况来讲,都是咱们在某些时候可能无意的时候敲一个命令,因为它的对这个网络配置的要求还是比较高的,就是说一开始它的参数很多,咱们如果忘记敲一个什么样的东西的话,他有可能就会去连接主网,或者说他跟周围的这个节点去做节点发现,然后就会去从别的节点去拿区块,去请求数据,然后就会大家会发现在自己的本地会有就是很大的这个存储空间被吃掉,呃,这种情况其实也是正常的,如果大家觉得这个东西已经有点乱了,已经已经搞不清楚什么状况,我我觉得建议就是最简单粗暴的方式,直接把我们这个文件夹直接干掉,然后因为其中一个思恋吧,大家大家已经熟了之后,发现那个很简单。
01:15
我们就把那个genesis.jason只要放进去,然后自己一配置,然后初始化之后一起就可以了,所以挖矿对于我们来讲其实也没有什么难度,对吧?刚才这一部分如果大家都已经试过的话,那我们接下来就来给大家说一点,就是盖上面应该是最近的比较新的版本,新出的一些就是特别的功能吧,大家这样就是,嗯,告诉大家,如果guest直接杠刚help的话,这里是可以看到它所有的参数和命令的,这一个呃,就相当于是帮助文档的,呃,大家就是觉如果觉得有些同学可能觉得这个guess好像就是看起来好像挺弱的,就只能是这么一句话能用到它,但其实不是啊,大家可以看这个guess它有多少可用的命令,多少可用的参数。
02:14
其实我们可以不进到就是控制台conso里面去,在外面直接用gas命令就可以做我们在里面的所有的事情,而且在外面还可以做很多就是呃,相当于是更高层级的系统层级的一些事情,比如说呃,去remove DB啊,就是把我们的DB啊删除啊,或者去做monitor啊,或者就是去去做一些别的事情,比如说这个去inport的一些,就是初始化的这些pre image database。就还可以做这些事情,所以他能做的事情其实是非常非常多的,在这里这参数很多啊,重点给大家说的就是这么几个参数,一个这个data Di,这个大家都已经知道了,这后面跟的就是我们的这个目录嘛,然后需要跟大家说的一个是假如说一开始大家没有把这个目录指定好。
03:14
就是或者说是没有带这个参数,自己就敲过一下盖的话。那它直接就会启动,就会连接主网,而且它默认的data DR是这样的一个路径,当然我这里是无门图啊,所以它默认的路径是什么呢?就是当前用户主目录下面创建一个叫做点em的。文件夹,它会把所有的区块数据,所有的这些同步的数据全部放在这个文件夹下面,这是它的默认位置,所以有些同学可能如果要是在自己当前目录怎么都找不到这个到底是这个大小大在哪了,就到我们自己自己默认的这个用户目录下面去找,而且要找隐藏文件,大家平炒可能看的就是觉得,诶这个大小就就明明就没那么大,就很多隐藏文件,确实是会比较占空间啊。呃,如果大家有过这种不带参数不带杠d data d启动的情况,那么在这个下面一定是会有这个文件夹的,大家可以去看一下。
04:20
呃,另外就是也多说一句,我我在文档里面大家可以看到。呃,不是这个文档啊,就是我们那个。搭建司链的这个文档里边,大家看到我有一句该启动的命令,后面跟的那个目录很长一串,呃,其实我不是说大家一定要用正常的一串命令啊,其实这个是就是用这个来告诉大家,它的意思就是说这是一个路径到我们自己定义的一个,一个就是数据的文件夹,大家随便叫一个什么名字,只要大家这个方便使用就可以,大家不用copy这么长一串命令过去,要不然每次大家找这个文件夹的时候会发现很深,所以这个就比较麻烦啊,跟大家说一下这两个事情,然后还有我要跟大家说的一个参数,启动参数是这里的一个参数,大家看到没有,对刚刚第一位。
05:18
我们看一下它后面的描述啊,它后面的描述是可以启用一个CRA of authority的network,这个这个是什么?大家还有印象吗?其实之前我们提到过的这个证明是吧?它是什么证明呢?Po是proof of work,那对,那他这个是p proof of POA对吧?对,这个是权威证明,这就是咱们说的测试网络的那种算法,那这种权威证明的话,它有什么好处呢?他就说你可以直接创建,就是创建这这个一个网络之后,可以有一个预先就有资金的这样一个开发者账号。
06:04
然后他是可以直接就在那里挖矿,大家如果觉得刚才这个挖矿很不稳定,然后经常自己起来之后还挖不到东西,而且经常还会发现有各种各样这个数据的异常,那我建议大家可以尝试一下这样一种模式,这样一种模式大家可以看到我为大家演示一下啊。呃,RPC我们就先不开了啊,杠杠第一位这样一种模式进去之后。哦,看一下。啊,这个刚刚第一位的模式,因为大家大家知道为什么他会报错吗?嗯,前面多了个点,哪个点是说这个。哪里多了点这个这个点吗?但这个我指定的是前面我们的数据目录的这个路径啊,是当前当前目录对吧?点表示当前目录,他报错的原因其实是因为没有解锁哦,看到它的这个有一个提示说是不能去,这个是re,应该是加密对吧,加密这个key with给定的给定的这个词,但这个其实说的不是很清楚,他说不能去解锁这个开发者账户,这是什么意思呢?其实他的原因是在于如果我们用开发者账户启动这一个。
07:40
呃,就是我们dev的这个环境的话,跟我们现在的这一个目录里边的环境就是不一样的,我们现在的目录环境里面是我们自己构建的思链,并没有开发者账户。而且是我们自己配置的,预先给哪个账户多少钱。
08:00
它的挖矿难度是什么?所以说DV这个其实就是说他自己,他替我们自己构建了一个特殊的磁链,它是不需要我们当前这个磁链来启动的,它是这样一个东西,所以如果我们知道这个的话,我直接在外面这样啊,在v Di,我来一个MYD,我们进到这个目录里面去看一下,然后我们尝试用一个命令,这个时候。我已经可以别的命令什么都不用了,我直接就说杠杠指定这个目录,因为这个目录data Di大家知道,这就是我们存储所有数据的地方嘛,这个还是要指定的当前目录,然后杠杠divvl。大家可以看到,直接就进来了。然后我们在这边还是开一个。
09:03
把我们的那个log文件,大家注意切换目录,把我们的大家看到现在已经多了这么几个文件夹了,是吧?如果大家愿意看的话,大家猜这个K里边有东西吗?这里的P道P2里面存着是什么?应该是。应该是账户对吧,它里面有没有东西,哎哟,敲错了。直接进来就有一个文件。这个文件其实就是我们启动的时候,它默认的一个开发者账户。所以它就相当于是给咱们直接就建立了一条丝链,咱们如果大家就是用这种更方便的方法,我们连那个丝链搭建都不要,直接这样一个命令,只要找好了一个呃文文件夹,然后我们直接运行一个命令,杠杠第一起来就可以了。呃,所以这个就是最方便的一种状况啊,这个时候大家在里边去查一下ETH accounts,这就是我们的开发者账号,然后在这个里边,那大家说它是它在这个里边是自动挖矿,所以在这个里边大家其实不需要再去手动的启动manager start,呃,Start啊。
10:22
我们先那个把这个output还是先打开,在这里我想跟大家说的是,刚刚第一这个一开始用的时候有一些别的一些问题是大家会发现假如我再去创建一个账户personal,第二大家记得怎么怎么创建账户吧,因为我看这。呃,我们之前的new account的方法是里边就是什么都不给,然后就提示我们输入密码,这也是平常我们做控制台交互最安全的一种方式,另外还有一种方式是我可以直接给定一个。
11:03
一个东西,这就相当于是把密码传进去了,当然这个就是大家都看得到,然后他就不用再去输了,直接就可以就可以进去了,那现在我们肯定一天的account发现有两个了,这个数组里面多了一个元素,我们新建的那个账户就是ACCOUNT1。本身他的开发者账户ACCOUNT0对吧,咱们看看accounts大开这个开发者账户里面有钱没有。是不是很关心这个抗子灵,大家看一下。这个开发者账户非常恐怖的一个数字啊,对,他初始其实就给了非常非常多,大家应该能看懂这种表示,这种表示是科学计数法对吧?呃,大家看是1.15,后面就不说了,都是那个小数位一的加77。
12:03
那就是七七十七次方对吧?十的77次方,一乘以1.15乘以十的77次方,尾尽管是尾,那也是不少以态了,那基本上就是随便花这个钱,基本上已经不需要考虑了,那我们看一下我们刚新建的这个抗抗一啊,里边是零,果然什么都没有,好,那我们来转个B吧,ETH点什么对三的transaction,呃,大家经常要写一写这个发交易的这个命令啊,因为它里边有很多参数,大家就知道一笔交易里边有什么东西了,尽管接下来我们还会给大家详细的去讲解这个事情,Account,零。Two抗ETH啊,抗一。Value,呃,我们外3.two尾我们给上十个,他不是有钱吗?我们多给点好大说现在如果要是这么一敲的话。
13:19
会有什么效果?之前我们好像一敲就报错了,他需要解锁账户。现在大家觉得他会不会要求我们解锁账户试试吧,完全不用开发者账户,它默认就是可以已经解锁的,对,就是大家上去之后就发现节省了很多很多事儿,因为平常自己用的时候就是可能一会儿需要输一下密码,一会儿是还需要去挖个矿什么的,可能这些事情咱们在做操作的时候就会觉得特别的繁琐。呃,那现在呢,这个事情就就变得非常的简单,好,那我们已经发了,我们看看到底有没有了,现在这个康子里边,诶大家就看到。
14:01
已经有了一个以态,呃,应该是十个以态,对吧,大家如果刚才注意到的话,大家可以看到这边的这个log输出啊,对,大家可以看到我们进来之后,其实这边根本没出块,大家看啊,这个1.blocknumber到现在才是一就挖了一个。这边根本就一直没在动。但是我们这边一提交交易这边瞬间就出一个框。大家要刚才没看清楚的话,大家注意这个屏幕右侧的这个啊,我把这个复制一遍,然后再敲一遍,大家注意右侧。右侧好像我这里是点了之后它锁定屏幕了啊,对吧,又动了又加了一个块。刚才我不该锁定这个屏幕,我这边再再交易一次,大家看是不是它又出了一个块,又出了一个块对吧,所以大家可以看到它的这个div模式下是什么特点呢?是它直接为我们启动了一条丝链。
15:07
里边包含着一个非常有钱的开发者账号,而且这个账号默认就是解锁的,我们随便用它可以来发交易。而且它还有一个特点是不用我们挖矿,它的挖矿是自动的,或者说他平常根本不挖,是等到我们有交易生成,需要挖矿去确认的时候,它自动给我们挖矿挖出来,把这个交易就确认了。所以它的用法是这样,大家可以去去尝试一下,呃,这种模式就是方便大家在做一些测试,平常如果要去做一些交易的测试啊,做一些命令的尝试,包括之后我们要去部署一些合约的时候,这个就非常的方便,要不然我们呃在刚才之前没有是这个开发者模式的时候,我们自己搭了四件,发现他还有各种各样的这个状况出现,我们还得记得去去挖个矿,我们还得去解锁账户,这个耽误很多时间啊,这个就是给大家节省时间的一种做法。
16:03
好,这个就先说到这里,接下来我们要跟大家说的是,那我们已经完成转账了。这还对,对于我们一个开发人员来说,只能够做转账显显然是不够的。那我们其实是希望在区块链上拿到我们想要的信息的。我们在区块链上,到目前为止,我们能查到的信息主要就是查什么了,查账户。查余额对吧,刚才我们get balance,那别的东西我们能查吗?比如说我们现在看这个交易生效没有的时候,我们的方式是直接去看这一个转账的那个余额里边,它到底有没有增加出来。但这个方式显然是不对的,就是我们不应该用这么怎么说呢,这么低级,或者说这么看起来。
17:00
不够技术的方式去跟踪我们的交易,他发送这个交易之后,这不是连哈希都有了吗?那我们是不是可以直接根据这个哈希,就像在eer上一样,一点它,它就应该能够查到这个信息呢?答案当然是可以啊,我们eer里边大家一看就可以输一个get,然后后边就会列出来,大家如果按那个table键的话,就像在那个我们Linux下面的这个命令行一样,它会把我们这个做一个自动补全,能够看到各种各样的get补全的这些命令。这是它所有有以get为前缀的所有的方法。我们可以看到,它可以get account,可以get balance,还可以get block。还可以get。当然可以get mining啊,可以get min的状态,还可以get transaction,好,我们现在就get一个transaction,大家觉得这个参数应该输什么?
18:04
我们要去查一个传家ction,就是交易上面给我们的这个东西,对吧,这就是交易哈希,对,这就是我们可以把它,我们知道哈希这个很难能够碰撞的,碰撞碰撞到一起对吧,几乎就是不可能的正常的这个哈希,所以我们可以认为这就是交易的一个ID,我们把它传进去看一下,这就是这一笔交易的信息。我们先大大概的先过一下啊,就是等一下,就是会给大家,今天我们有一部分内容,就是详细的去解释交易里边的一些东西,交易是什么,交易里边的数据结构是什么样的,大家可以先瞄一眼。就大概他这个交易给到的这个信息有这些。呃,它这当然,这是存储已经生成的一个交易了,它当然就有block哈希,它已经进块了,还有block number,这是在第二个块上。
19:01
然后这个块的话,其实上面这个啊,然后from我们的开发者账号,然后当然下面找对应就有to对吧,它这个是按字母序排列的,所以不是不是跟着的啊from to to我们的自己的那个ACCOUNT1那个账号,当然了,有了from,有了to,当然就有value了,最后就是value。另外还有一些大家可以看到GA。GA price,这都是我们经常说到的东西,对吧,哈希就是这个交易他自己的哈希,我们传进来的这个值,然后它还有一个input。这是什么东西呢?这是他额外传输的对交易数据,但是这里边我们什么都没给,所以它就默认是一个这个0X的一个前缀。什么都没有,后面是一个。我们前面大概的说过,对,说是一个随机数,但是在这里面它其实就像一个计数器一样,大家看这是一啊,这是我们这个上面发的这个交易,第二个块里面交易是一,我们在同样的方法来查一下,下面发的这个交易,我们对比一下,看一下。
20:15
好,大家看他的块是三对吧,我们一个交易就出一个块嘛。BLOCK3,然后它的NUS上面那个是一,下面这个是二,所以它就像一个计数器一样,对不对,那其实就是一点一点往上加就可以了,所以这是我们说那个在整个以太坊里边,Na有两个地方用到了na,一个地方是区块。有一个nu,那是矿工挖矿的时候指定的那个是一个随机数,然后呢,在交易发送交易的时候,还有一个nu跟账户绑定,那这个呃,它本身的含义应该是随机数,但是我们应用的时候,其实它就是个计数器,大家可以认为它就是递增的。当然我们其实是可以手动指定的啊,之后我们再给大家看这些复杂的应用,然后下面还有RS,还有V。
21:06
这三个东西是他的签名。然后还有一个叫transaction index,这就是这个index是什么意思呢?Index是索引对吧,它是表示这个transaction,这个交易在这个块里边的位置是第几个,对它它是第一个,就只有一个嘛,所以这个都是零,就是手的位置,好所以这个大家可以去看一看这些信息啊等一下我们给大家做一个交易的详解,就是交易,交易里面所有的事情到底是什么东西,我们再给大家补充一些理论的知识,到时候好,这是交易,那我们除了呃查看交易,我们还记得在easter干上,我们可以查看每一个交易,还可以查看每一个区块,对吧?我们可以点开看区块,那在这里边客户端get里边可不可以看区块呢?
22:00
刚才明显我们都看到一个叫做get block的一个东西,对吧,那后面这个参数我们给什么?呃,这个我刚才又点了一下table,它又自动补全,还有这么多可以get block transaction count,诶,我们先看这个吧,这个好像简单一点啊,字面大家能知道它是什么意思吗?Block block transaction count交易数对这个这个块里面有几个交易,所以他直接,诶,对,里边没有船。呃,大家觉得应该传什么东西,传区块哈希对吧?对,可以传区块哈,我们这里不知道区块哈希。我们这里完全不知道区块华西传什么呢,比方说我就传个二。这就传的是第二个块的block number是可以传的,所这个我们就方便很多了,对吧?呃,因为你那个哈希的话,我们可能不太好找,这个number是非趁非趁找的一看哦,这个区块里边一个交易,那大家知道它其实每个区块里面对都是一个交易,因为这这是这个刚刚第1V模式里边的一个问题,就是我们这个东西对我们来讲来讲无效,它一个交易发发一个出一个框,所以说这个这些东西我们都知道的,都都是一,那同样我们就知道我们也可以get block,然后给一个number来查它,对来看一下这是number这个block的信息。
23:35
Block的difficulty有有多难,然后它的extra data,大家可以看到我们并没有设这些东西,为什么这些东西已经有了呢?而且这个D口跟好像我们那个思链设的不一样,对吧?因为它跟我们自己设的四链就没什么关系,我们知道我们是在另外一个目录里边,对吧,跟思链都没关系,直接杠刚第一位就提起来了,所以这些参数都是刚刚第一位它默认给我们配好的。
24:05
大家可以看到这个难度非常的小啊,所以有些同学就说,哎,我配成一的时候,它瞬间就出来了,就是第约课题难度给一瞬间就出来了,确实给的很小的话,确实很快,呃,但是其实没必要这么小,像这个刚刚第一位的这种模式,它即时出块也就只配了二而已。然后我们可以看到下面有GA limit,有GA used,这是整个这个区块,它就发了一笔交易,对吧,大家还记得我们很多的转账的这种交易都用的是这个21000个GA,所以这是一样的,它只有一笔交易呢,就是这么多,然后下面是哈希,然后有他的logs bloom,这个,这个大家可以先不管啊,这个是跟跟日志相关的一些东西,然后下面是minor minor都没有。就他直接默认就出了,所以麦都没有,然后mix哈希和这个nux这两个都没有,所以它其实没有,实际是没有执行挖矿的这个对强制出款。
25:05
直接就这样出来了,因为他用的是po OA嘛,权威认证就是权威证明,所以大家可以看到,可以猜到我们的测试网络,像RI by,还有con,他们号称用的是权威证明,所以他们的去出块的模式,其实也是应该这样,好,我们去到这个上面去,可以去看一下啊。A r by。Block。我们可以看到那个RBY上面的这个这个block,它和我们的div的撕链还是不一样。它上面还是有有地址的,哎,为什么跟我的那个就不一样呢。因为他的权威真的是真实的权威。
26:02
那是真真正的一个人,他控制的地址是作为权威的,对不对?大家应该能够想到这一点啊,而我们这里就是一个测试环境。那是不需要有一个指定真正的一个权威的,那所以我们把它直接写死就好了啊,这这是这些东西啊,然后我们可以看到有numbers,有number这里边它的区块号,然后它的前一个富哈西,然后它的这个,诶大家可以看到这里边有一个receipt route,还有一个transactions route,还有一个state route。大家可以猜一下这是什么东西。他带root的,大家在讲比特币的时候,有有什么东西是跟root相关的,还记得吗?嗯,梅克尔数对吧?对,比特币里边大家还记得,他把很多的这个哈希是组成了一个梅克尔树,然后把梅克尔树的树根是要放到这个区块里面,放到区块里边作为一个基本信息来做验证的,那在以太坊里面同样是用到了这样的数据结构。
27:08
当然以前房里面又有一些不同,它在梅克尔树的基础上还做了扩展,它叫梅克尔,呃,帕特里下属,呃,这个就是之后我们在讲源码的时候,如果有时间可以再跟大家再说一些这些相关的东西,这些东西怎么说呢,我觉得是比较难,但是就看大家有没有兴趣,就是用途可能也没那么大,就知道了,也没什么用,呃,但是就是说如果大家感兴趣的话,我们可以去了解啊,所以在这里它是他存的东西更多一些,他这些其实大大家都可以认为它是某个。某个树的树根。这是什么树呢?它里边有三棵树,一棵叫做交易树,这就是所有交易的哈希构成的一棵维克尔树,然后还有这个叫做状态数state root,还有一个叫做reip root,叫收据数,所有所有的这个交易。
28:03
真正成功之后,会返回一个交易收据,那这个东西还要再构成一个一个数。所以就相当于可以理解成就是一个是交易本身的这个信息构成的树,然后一个是他进块之后,确认之后又又构成了一棵树,所以这些东西都是在里面的,以太坊的数据比,呃,因为它确实想要实现的功能多嘛,比比特币大家可以看到啊,确实是就会又多一些东西,所以大概就是这些东西。所以大家可以看到。一个easter干上他。售出来的这些信息啊,显现给我们的这些信息,大家看好像也没什么特别的,对吧,就是我们在盖子里边就全能查到,所以呃,大家可以看,就是E,它只是一个网页的实现嘛,只是要把这些可视化,让大家看得更清楚更明白一点。具体的这些信息,我们只要自己有了一个盖之后,我们把这个盖连上测试网络,那其实这些信息全查的出来。
29:05
所以这就是盖作为一个以太网客户端,它强大的地方,他能做的事情确实很多很多。
我来说两句