经过2017的喧嚣,区块链公网建设的格局大致已定。btc,eth,eos、ada以及国内的小蚁、本体、量子、公信宝等占据了公网主链的市场,区块链行业的发展也会逐步向应用转移,未来杀手级应用的涌现才能真正体现区块链的价值。毕竟普通用户是不关心底层技术的,也不能人人都在那炒币。(^_^)
2018应该很少会出现几十、几百倍的卫星,也很难有革命性的公链出现了,或者有也很少有机会成长起来,这是另一个主题,这里不谈。这里主要想简单说一说,2018年区块链应用开发该怎么考虑。
区块链是什么有很多介绍,比如韩锋老师的这个洗脑文:区块链的运行原理和发展。(大致了解下是可以的,以后有详细的技术资料再更新)
区块链公链提供了什么能力?有什么作用呢?简单来说,从区块链应用开发角度出发,我觉得有以下两个最重要作用:
存储少量链上数据,交易数据
提供少量计算能力,智能合约
我们知道实际的it项目,包括应用,本质上就是存储、计算、网络的综合体(^_^云计算常念叨的那一套)。那么区块链提供的这些能力能替代传统it架构和基础设施吗?
答案显然是:不能。
纯区块链项目解决了链上数据的安全、可信任、可回溯、不可篡改的问题。但能放在链上的数据太少,成本太高了。
纯区块链项目能够提供智能合约功能,这个功能很强大。合约、契约写入计算机程序中,权利和义务,由计算机网络严格执行,杜绝了人违约的可能。但智能合约也不是万能的,例如安全问题、复杂度问题,访问外部数据困难等问题。
因此区块链应用,应该是传统it架构插上区块链的翅膀,做深度的改造和重构。而且这种重构不应该是简单的 传统it + 区块链,而是需要换上区块链思维来重新考虑和审视我们的软件架构。
以下是区块链应用参考架构的考量:
传统it架构 将价值部分,例如转账、积分等转交区块链系统处理。
传统it架构 将不可篡改、可回溯数据处理部分,交由区块链系统处理。
传统it架构 将部分业务逻辑转由智能合约系统处理。典型的如用户之间的对赌协议。
传统it架构 将用户数据控制权转给用户。用户身份校验需要重新考虑。
以以太坊为例说明下区块链应用开发:
以以太坊ERC20接口发行系统token
基于以太坊安全架构及web3.js及truffle开发智能合约,https://github.com/OpenZeppelin/zeppelin-solidity
使用以太坊运行时编译智能合约技术,动态加载智能合约。
智能合约使用oracle服务访问外部数据
大额支付,走以太坊主链。小额支付考虑雷电网络、僵尸网络等。
数据存储采用ipfs、storej等。用户数据hash值保存到区块链,实现用户数据可以追溯,不可以篡改。
传统it架构存储系统,如mysql、redis用作用户体验质量保证系统,例如作为ipfs,以太坊数据的快速访问缓存系统。
参考数据存储的原则,将计算能力推送到用户个人终端。即用户可在没有中心服务器的情况下,也可以访问自己的数据和资产。(当然可能有些服务就不可用了。这里不是说不要服务中心,而是说离开中心服务器,用户仍然能够掌控自己的价值数据和有价值的资产)
以上是一些初步的考虑。后期对一些技术点,做进一步的总结整理。
领取专属 10元无门槛券
私享最新 技术干货