大家好,我是周迅,今天我们来探讨一下古典App与区块链DAPP平台的开发的相关内容
摘要:区块链技术正在重构我们的世界。在第一代区块链账本(比特币)的基础上。以太坊加入了智能合约的概念。以太坊区块链被认为是区块链的2.0时代,如果说比特币区块链相当于PC操作系统的“DOS”时代,那么以太坊区块链则进入了“Windows95/98”时代。商业级Dapp的落地或者说区块链行业的发展需要基于一个智能合约速度更快,扩展性更强,安全性更高的基础设施,即底层链。区块链行业近期的主要发展趋势将会是底层链技术的创新。对于投资者而言,未来则将变成一场底层链争夺战。
【古典App的开发】
传统App的开发,倾向于强调快速迭代(fast iteration cycles)。作为一个开发者,你想要建立一个最小可行产品(minimum viable product)让人们测试,然后尽快释放更新版本的产品。像Facebook这样的传统App有一个座右铭:快速移动并进行突破。
首先我们来看看App的构成,一般一个完整的App产品包含服务端和客户端两个部分,没有服务端的App也有,像简单的工具类,单机游戏,但是非常少,从经营的角度考虑,为了积累用户和数据,大部分App都有服务端;客户端就是平常我们从应用商店下载到手机上的部分, 服务端一般提供数据读写存储,处理业务逻辑,进行图片,视频等资源存储,部署在服务器上,用户使用客户端通过接口和服务端进行交互,享受App提供的服务。客户端用户更能容易感知(大部分用户所理解的App,也就是客户端),实际上,服务端才是App中最重要的部分,从代码量上来说,一般一个客户端容量大小在几兆到上百兆不等,但是服务端往往会非常庞大,比如我之前工作的公司,每次更新代码量都在好几G,这还不是全部,所以在整个App产品中,客户端只是“小荷才漏肩尖尖角”中的尖尖角,大头是服务端,服务端会需求比客户端多好几倍的开发时间。
客户端需要根据手机操作系统来开发,不同的操作系统,有不同的要求,对于开发者来说,只需要满足主流的的操作系统即可,目前用的最多的操作系统分别为(如上图所示)苹果的iOS系统,谷歌的Android系统和微软的Windows Phone(简称为WP),目前iOS系统和Android系统占据了大部分市场,通常因为人力和物力有限,团队早期大多只能开发iOS版和Android版本其中一个,很难达到全平台全部开发,而且为了测试市场,大多数团队也会根据目标群体使用手机的特征,在iOS版和Android版中选择一个开发,以避免造成资源浪费。
尽管Android和iOS这样的平台方便了大家,也改善了贸易和经济,但它们也存在一些明显的缺点:
1)被平台束缚。参与的商家受制于拥有平台的企业。在任何时候,平台拥有者可以自行决定在是否对某个APP进行封号处理,而如果APP严重依赖于平台,那么账号被封就是一个巨大的打击。
2)平台抽成费用用高。团队上架APP要交费,售出增值服务也要交佣金。收费本身并没有错,毕竟iOS这样的平台提供了服务。但是,上架费有时太高了,这导致商家最后盈利很少,或是将成本转嫁到消费者身上。
3)数据失控。APP或消费者都无法拥有本应属于自己的数据。评论、购买历史等等所有数据都为平台拥有者所有。比如,如果一个APP想要换一个平台,或者想要导出APP评论或是其他数据都非常不容易,甚至不可能。
在35年前,也就是1983年,史蒂芬·乔布斯就开始谈论现在已被大家熟知的APP应用商店的商业模式。那时候用户要使用一款应用,必须要先购买才能试用,面对这种落后的操作模式,乔布斯设想采用当时唱片行业的模式进行改进。他解释道“APP应用商店应该改变这种落后的模式,要让大家像唱片行业一样通过广播这个载体提前了解他们要买的唱片内容”。根据乔布斯的观点,在软件行业也可以使用同样的方法,即用户先试用APP,觉得满意再去下载。25年之后,2008年,苹果APP应用商店上线,其简单易用的「用户界面」被人所熟知,APP应用商店让开发者能够很容易地创建和上传他们的APP,让开发者可以获得收益,千百万人可以参与使用;同时,用户可以通过下载或者从APP应用商店购买来更新软件。
虽然APP应用商店对于移动设备来说,已经是一次革命,但乔布斯当初设想的像广播一样方便地发送到千家万户的愿望还远未实现。而如今已进入到了APP过剩、用户注意力稀缺的时代,不论是因为谷歌和Apple这样的大公司所形成的垄断,还是APP所存在的隐私泄露问题,都在暗示着第四次APP应用的变革已经来临。
互联网的开发平台来自于它基于一个简单的核心层,在这个核心层面上,连接着数亿万计的边缘设备。每个边缘设备都拥有参与功能(App)发布和内容发布的权利。App只是将人类思维通过代码呈现出来,因此具有几乎无限的设计空间。连接到互联网的计算机大体上可以随意运行所有者选择的任何软件。有了合适的激励机制,构想的任何产品或服务都可以在互联网上迅速传播开来。互联网架构是技术创造力和激励设计交汇的地方。
在21世纪头十年的后期,这种App开发的去中心化逐渐被垄断所控制,用户逐渐被迫参与“免费”的科技巨头营造的次级网络空间,在这个空间里,规则由巨头的算法指定。但是这种半垄断状态注定不能长久,新技术的萌芽总是在巨头的视野边缘,甚至是其视野之外。
所以互联网仍处于发展初期:核心互联网服务在未来几十年很可能几乎完全重新设计架构。这将离不开区块链网络的支持,这种网络脱胎于最初在比特币中引入,在以太坊中进一步发展起来的想法。社区管理的去中心化网络与最终超过最先进的集中式服务的功能结合,将是区块链网络将来引领下一代互联网的最佳特点。
【Dapp开发和古典App开发的主要区别】
在区块链行业生态当中,一个能够满足商业需求、高效的区块链公共应用平台是必不可少,并占有极其重要的地位。Ethereum的兴起以及在2017年的爆发性增长,为我们提供了一个绝佳的参考范例。以太坊作为区块链2.0,加入了智能合约,采用的仍然是POW算法(近期发布Plasma要转为POS)。号称要取代以太坊生态的EOS,则采用了DpoS。EOS在主网上线之前已经吸引近50个DAPP的入驻。
智能合约设计的是一个可以用来计算一切的分布式图灵完备机器,一个去中心化的应用平台,一个解决金融/财务纷争的预言机。早期的ETH在架构上为充分意识到scalability的重要性,全网资源共享,难以隔离。从以往经验来看,ETH在代币发售之时就经历了数次大面积拥堵,cryptokitties的流行就能够阻塞整个ETH网络的转账,随着区块链技术更加广泛的应用,线性处理压力正在面临超出其设计容量的风险。
Dapp的后端代码运行在去中心化的点对点网络。而传统app的后端代码运行在中心化的服务器上。Dapp有能够用任何编程语言写的前端代码,使得API调用后端。更进一步,它的前端能够运行在例如IPFS这样的去中心化存储上。
最大的区别在于在被推向生产之前代码能够被仔细检查的程度。在这一方面,Dapp的开发更像是硬件的开发而不是软件的开发。在硬件开发过程中,产品推向公众之前必须进行严格的测试和原型制造(rigorous testing and prototyping)。硬件的召回花费大量资金,需要很长时间修复,毁坏制造商的声誉。同样的,在Dapp的开发中,智能合约一旦被部署到主网,便不能够改变。一个智能合约的漏洞会使得用户损失资金,毁坏Dapp开发者的声誉。
Dapp和古典App的区别还在于:
2.安全性增强:小额的交易通过走底层区块链的方式,可以更好的隐蔽拥有大量存储价值的APP账户地址。
3.速度更慢:现在比特币/以太坊转账速度已经达到瓶颈,17年12月高峰时比特币主网曾经滞留20万笔未确认交易,突破了历史记录。大部分链上转账其实都是小额交易,把这部分交易走到侧链,既可以加快他们的转账速度,又可以减轻主网的压力。古典App则基本没有运行缓慢的问题。
4.智能合约:古典App完成的大多是功能性的开发,对于完善有效的仲裁机制未作深层次考虑。
5.数字资产托管:在根链和以太坊上都有这么一些机构。根链使用一种叫双向锚定的机制,将比特币锁定在某个公钥里,就是将比特币区块链当成了数字资产(即比特币)托管所。而智能合约里面的其他数字资产和智能财产都需要某种代码或某种区块链来保管。资产托管在古典App上也未见应用。
区块链是一个能够保证输出可信的系统。去中心化系统容量天生不如中心化系统,所以,需要高容量的应用,可以根据需求选取中心化程度较高去中心化程度较低的区块链系统,基本上,所有的所谓大容量高并行低延迟的区块链系统,其实都有某种程度上的中心化,中心化程度越高越快。同互联网一样,区块链提供的也不是完全的去中心化,而是,你可以用它在任何层面,进行任何程度的去中心化。所以,你对容量需求高,就需要少去中心化一点好了,至少在可靠性上,它可能会比完全中心化的系统强。
然而,不得不承认的是,整个区块链行业还处于一个在初期完善基础架构的阶段,现阶段阻碍区块链大规模应用的最大障碍存在于技术上。Ethereum的机制以及运行效率,目前还很难支持一个庞大的去中心化商业应用生态。
END
好了,今天关于“古典app 与dapp开发(1)”的相关文章就到这里了。
如果大家有任何关于技术上的问题想与我讨论,
欢迎加入我的公链开发QQ群:699726921
项目交流可进项目QQ群:173806202
如想关注EKT的项目进展,欢迎关注微信公众号:EKT通用积分