区块链交易系统开发,
源中瑞从技术角度看区块链开发
区块链是什么
区块链来自于比特币等加密货币的实现,目前这项技术已经逐步运用在各个领域。我们可以使用谷歌地球的例子做类比:ajax
不是新技术,但组合后成就了产品谷歌地球。区块链与加密解密技术、P2P
网络等组合在一起,诞生了比特币。
技术人员,特别是Web
开发工程师,学习了解ajax
技术最早是被谷歌地球酷炫的效果所吸引。而现在,历史再一次重演,很多人被比特币的疯狂发展所吸引,进而开始研究其背后的技术——
区块链。
从概念到底层技术,区块链一站式分析和汇总
区块链架构
从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。如图:
我把与区块链相关的知识内容分为以下几个方面:
(1
)基础知识
区块链是新技术,与之相关的是其背后大量的新概念、新理论。这些知识,虽然不直接体现在编码里,但却是理解区块链,掌握区块链技术的基本知识。(2
)技术实现
区块链是一项技术,但从上面的分析可以看出,它应该是一种架构应用,架构的实现理当是我们知识库的核心。13823118291
正如大家看到的,←
区块链技术开发电任何一款区块链产品,
理应归为技术实现的一个重要部分。
(4
)开发环境
区块链是多项技术的组合,有其自身的复杂性,个别应用对开发环境依赖较大,开发工具与环境搭建,是让开发者快速上手的重要内容。
(5
)项目实践
短短数年,全球区块链产品已经有几千个,其中不乏创新应用。有些优秀的开源产品和项目实践,是最好的学习研究资料。
(6
)开发文档
有心的开发者整理汇总的一些资源,可以帮助我们节省很多查询的时间。
以上,我们把区块链技术基础架构描述了一下,需要再次强调的是,这仅仅是一种实现方式,绝非所有的区块链产品都是如此,我们也期待更多创新出现。
技术人员看待区块链的正确姿势
想象有一个100
台的分布式数据库集群,现在的情况是这100
个节点实际上的拥有者是一个机构,并且所有节点处在该机构的内网当中,所以这个机构想让这100
个数据库节点干嘛就干嘛,换句话说这100
个节点之间是处于一个可信任的环境,并且受控于一个实体,这个实体具有绝对仲裁分配权。
另外的情况是这样的,想象这100
个节点分别归不同的人所有,且每个人的节点数据都是一样的,即完全冗余,并且所有的节点是处在广域网当中,换句话说就是这100
个节点之间是不信任的,且不存在一个实体,它拥有绝对仲。
现在考虑第二种情况,采用什么样的算法(共识模型)能够提供一个可信任的环境,使:
每个节点交换数据过程不被篡改;交换历史记录不可被篡改;
每个节点的数据会同步到最新数据,且承认经过共识的最新数据;
基于少数服从多数的原则,整体节点维护的数据本身客观反映了交换历史。
区块链本质上就是要解决以上第二种情况的一种技术方案,更确切的说应该叫分布式的冗余的链式总帐本方案。了解更多上51kfxt.com
有关区块链的一些要素,在我以往的文章里有总结过一些:
包含一个分布式数据库
分布式数据库是区块链的物理载体,区块链是交易的逻辑载体,所有核心节点都应包含该条区块链数据的全副本
区块链按时间序列化区块,且区块链是整个网络交易数据的唯一主体
区块链只对添加有效,对其他操作无效
基于非对称加密的公私钥验证
记账节点要求拜占庭将军问题可解/
避免
共识过程是演化稳定的,即面对一定量的不同节点的矛盾数据不会崩溃。
共识过程能够解决问题
所以作为一个技术人员,不应当只看到了区块链所依赖的技术,更应该关注区块链以外的点和面,综合来看,区块链将会有趣得多。
-------------------------
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。