作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前面一篇文章,我们粗略的研究了一下比原的dashboard是如何做出来的,但是对里面提到的各种细节功能,并没有深入的去研究.那么从本文开始,我们将在这一段时间,分别研究里面提到的每一项功能. 在前一篇文章中,当我们第一次在浏览器中打开dashboard时,因为还没有创建过密钥,所以…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前面的几篇文章中,我们一直在研究如何与一个比原节点建立连接,并且从它那里请求区块数据.然而我很快就遇到了瓶颈. 因为当我处理拿到的区块数据时,发现我已经触及到了比原链的核心,即区块链的数据结构以及分叉的处理.如果不能完全理解这一块,就没有办法正确的处理区块数据.然而它涉及的内容太多…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前一篇文章中,我们试图理解比原是如何交易的,但是由于内容太多,我们把它分成了几个小问题,并在前一篇解决了"在dashboard中如何提交交易信息",以及"比原后台是如何操作的". 在本文我们继续研究下一个问题:在提交的交易成功完成后,前端会以列表的方式…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前几篇里,我们研究了比原是如何通过web api接口来创建密钥.帐户和地址的,今天我们继续看一下,比原是如何显示帐户余额的. 在Dashboard中,左侧有一栏名为"Balances"(余额),点击后,我们可以看到每个帐户当前有多少余额,如下图: 这又是怎么实现的呢?我们…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在比原的dashboard中,我们可以为一个帐户创建地址(address),这样就可以在两个地址之间转帐了.在本文,我们将结合代码先研究一下,比原是如何创建一个地址的. 首先看看我们在dashboard中的是如何操作的. 我们可以点击左侧的"Accounts",在右边显示我…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前面,我们探讨了从浏览器的dashboard中进行注册的时候,数据是如何从前端发到后端的,并且后端是如何创建密钥的.而本文将继续讨论,比原是如何通过/create-account接口来创建帐户的. 在前面我们知道在API.buildHandler中配置了与创建帐户相关的接口配置:…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前一篇,我们探讨了从浏览器的dashboard中进行注册的时候,密钥.帐户的别名以及密码,是如何从前端传到了后端.在这一篇,我们就要看一下,当比原后台收到了创建密钥的请求之后,将会如何创建. 由于本文的问题比较具体,所以就不需要再细分,我们直接从代码开始. 还记得在前一篇中,对应创…
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 我们知道,在使用bytomd init --chain_id mainnet/testnet/solonet初始化比原的时候,它会根据给定的chain_id的不同,使用不同的端口(参看config/toml.go#L29): mainnet(连接到主网): 46657 testnet…
本文涉及到几个zookeeper简单的知识点,永久节点.有序节点.watch机制.比较基础,熟悉的就别看了跳过这篇吧 每个线程在/locks节点下创建一个临时有序节点test_lock_0000000040 获得/locks节点下所有子节点A.B.C,排序获得最小值 若当前节点B为最小值则获得锁,执行业务逻辑 若当前节点B不是最小值则watch比自己小1的节点A,节点A存在则await,否则获得锁 总结:临时有序节点排序后watch比自己小1的节点. 下面看代码 1.线程初始化 创建一个名字为l…
看代码学知识之(2) ListView无数据时显示其他View 今天看的一块布局是这样的: <!-- The frame layout is here since we will be showing either the empty view or the list view. --> <FrameLayout android:layout_width="match_parent" android:layout_height="0dip" and…