如何使用区块链开发一个落地项目--链新科技

日期:2020-03-26 15:20  作者:链新科技

区块链项目开发是现在一个比较抢手的新概念,蕴含了技能与金融两层概念。本文以联盟链为例,简略描述了实践一个联盟链的根本进程。
 
首先要断定这个区块链项目开发的类型,是公证型区块链仍是价值型?
 
区块链项目开发是指仅限一些要害数据自证、发表、防篡改等功用的区块链,一般是在价值型区块链中顺便的功用,也能够独自扩展,用于公示揭露等。价值型区块链是指能够进行财物所有权搬运的一种记账账本。
 
如果断定是价值型区块链,我们又需要断定方针区块链的整体定位:到底是一个普适的价值传输区块链,仍是特定场景下的区块链?
如果是特定场景下的区块链,咱们一般引荐超级账本作为技能原型,如果是比较通用的价值区块链,咱们引荐以太坊的思路。
 
《事务场景的构建与开始剖析》
 
首先要清晰的观念是,区块链不是全能的。许多场景其实是不需要区块链项目开发技能也能处理的。
 
像跨境付出范畴,区块链项目开发能很好的发挥是因为存在许多点对点的跨境组织有很多的付出清算需求,而又不期望中心组织参加,区块链是很好的挑选。
 
但是在一些集团内部,大型公司内部,区块链项目开发处理方案根本上远远不如传统的企业资源处理方案。
 
A、需求痛点分析
 
一般需求痛点在满意以下条件的时分,能够考虑运用区块链:
 
1. 存在一个不相互信任的P2P网络环境;
 
2. 节点之间是对等的,不存在一个肯定仲裁者;
 
3. 节点之间是博弈行为。
 
P2P网络可能包含输入和输出,当包含输入和输出时,区块链不再关闭。
 
关于某个节点一般有以下几种行为(包含但不限于):
 
1. 不信任其他节点;
 
2. 确保自己的收益最大化;
 
3. 自私获取但不奉献资源。
 
针对以上情形的事务建模,需求针对详细的事务逻辑结合博弈论推导出满意自己需求的计划。
 
B、非区块链技能能否处理
 
事例1:
 
一般咱们有不同的组织A、B、C,存在不对称的信息交流需求,即A、B、C分别具有部分数据,但三者组合到一同具有商场的全量数据。
 
可是作为A,想知道B、C是否拥有自己数据调集中的某个点数据,依据这个成果来调整自己的购买战略。
 
事例2:
 
有不同的组织X、Y、Z,存在信息反应的需求,当Z收到Y的效劳时,会给Y一个信息反应,这种反应可能是信用点评,也可能仅仅呼应反应。
 
总之这种反应需求记录在案,X会依据Z的信息反应成果调整自己的购买战略。当X购买效劳时,相同会给Y一个反应,Z也会收到反应。
 
以上两个事例首要考虑运用非区块链是否能够处理:
 
针对事例1,敏感数据和私有数据是不会揭露的,即便加密也不会被答应上传到区块链。
 
所以发生了一个数据输入输出区块链的进程,该进程是区块链不行操控的。
 
那么运用传统的技能是否能够操控呢?形似也不行,能够满意不暴露敏感数据的计划也只要HASH核算和同态加密。可是这两者都要求数据传输到指定方位。
 
一般我们会考虑运用零常识证明作为处理计划,但是详细的算法可能需求依据详细事务逻辑进行构建,结合简略智能合约,依据查询成果发生不同输出。
 
针对事例2,反应信息简单被篡改,可刷单等问题是最大的,怎么确保这种信息反应是客观中立不行篡改的,能够结合区块链代币的币龄使交易具有方向性来避免作弊行为。
 
《业务场景建模》
 
针对第二节中的两个案例,我们接下来要进行建模,除去核心痛点,我们必然还有记账的需求,本质上任何案例中每个节点都既是服务方,也是客户方,那么怎么衡量自己贡献和索取了多少呢?
 
所以任何区块链平台上,必须是要有代币系统的,否则记账将非常困难。
 
在业务场景建模过程中,我们主要关注如何使节点之间达成帕累托改进,而不是因为每个节点是自私行为,让区块链服务名存实亡。
 
《开发途径》
 
A、区块链原型选取
 
依据本文最初的叙说,假如是特定场景的区块链解决方案,主张Hyperledger fabric,当然建立以太坊私有链也是能够的。下面是一些以太坊和Fabric的比较:
 
以太坊与HyperLedger相同点:
 
1. 都是供给区块链事务完结的渠道,事务完结都是经过智能合约来完结,以到达最大的灵活性和对底层的不修正。
 
以太坊是:EVM虚拟机,Solidity合约言语;
 
HyperLedger是: Shim链码容器,用GO编写合约
 
2. 官方版本都运用GO言语完结。
 
3. 因为都是供给第三方可编程才能,因为难度大,内部不免存在缝隙。对外则存在恶意程序攻击的要挟。
 
尤其是在做为公有链时,要挟将会更大。上个月以太坊已有报合约solidity言语缝隙。
 
以太坊与HyperLedger不同点:
 
1. 以太坊只供给智能合约才能。也恰好吻合它的定位:
 
智能合约和去中心化运用渠道。对体系安全性或准入机制无底层无核心上的支撑。
 
而HyperLedger在吸收以太坊智能合约特点的同时,供给MemberShip及身份验证人物办理等模块,更贴近商业运用场景。
 
2. 一致机制不同。因为一致的不一样,所以每秒可处理的买卖量也不一样,以太坊是每秒千级其他处理量,而HyperLedger能够到达十万等级。
 
3. 选用的技能完结思路上不一样。以太坊更多的是靠自己完结,自己造轮子,有点开发人员炫技的感觉,如自己供给合约言语solidity,自己完结EVM(这个可能是实际需求)。
 
当然,假如考虑自行开发,主张建立根底比特币网络,做加法,更改一致算法,网络传送协议以及附加合约(可选)。
 
其实智能合约在一些场景中不是必选项,对用户来说,牢靠便利实时是榜首需求,假如针对特定的运用场景,将“合约”固化在区块链里边,也是一种可行的思路。
 
针对以上两种联盟链完结,笔者还想着重,并不是一切效劳必定得是区块链的,笔者构想了一个通用的保护伞型结构,如比特币的侧链技能,主链供给根底账本效劳,侧链供给特定场景效劳,侧链上的运用能够对错区块链完结的,只需接口注册即可。
 
B、交互接口规划
 
在交互接口规划上,推荐运用现在业界通用的Json-RPC接口,扩展性和友好性兼备。
 
一般咱们将接口分为两类:敞开接口和账户接口。敞开接口是指区块链本身的描绘信息,是不需求认证的,而账户接口是需求账户认证的。
 
C、根底账本规划
 
根底账本规划包括以下两个问题:
 
首先是原型区块链是否现已满意需求?假如针对以太坊,基本上不需求改动根底账本,只需构建智能合约即可。假如以比特币体系为根底,则可能有较大的改动。
 
不满意需求时怎么改动根底账本?这个其实要视账户模型而定,假如运用UTXO形式时,改动重点在怎么嵌入模板买卖体。假如运用Balance形式,那么则没有这个问题。
 
D、事务扩展层规划
 
事务扩展规划方面的内容比较复杂,篇幅问题这儿也仅仅抛砖引玉提出两个问题:
 
1. 扩展层是外接区块链仍是内置到区块链?
 
2. 假如包括数据输入,是否需求脱敏?脱敏后怎么上链?
 
先想清楚这两个问题或许能帮你更好地规划事务扩展层的内容。
 
《开发改变和难点》
 
A、开发思想的改变
 
与传统网络效劳不同的是,区块链开发不再以面向效劳为首要重视点,而是面向账本和买卖。
 
开发者面临的不再是以高可用高并发的应用程序为首要目标,而是切换到了面向用户,重视用户友好性和开发扩展性的终端程序开发。
 
所以高并发高性能不再是区块链终端的中心目标,安全性、可扩展性、友好性成了首要目标。
 
B、开发难点
 
现在来讲,区块链项目开发的难点有三个:
 
1. 开发人力资源储藏缺乏
 
现在比较老练的技能系统有比特币及衍生技能系统、以太坊、超级账本HyperLedger fabric、比特股Bitshares、瑞波Ripple和未来币NXT。其间前三个是最有影响力的区块链项目。
 
比特币以及衍生技能多以C++言语进行开发;以太坊支持大部分干流言语,官方以Go为主,也有其他分支的项目如Rust言语的Parity钱包;超级账本现在以Go为主。
 
从现在上海区域的区块链从业人员来看,保存估计在400~500左右。按一半为开发人员核算,也才200多个,面临巨大的市场需求,人才是极度稀缺的。
 
因为C++现在仅在金融和游戏范畴有部分需求,所以C++工程师不多,尤其是高水平的C++工程师就更少了。Go作为新式言语,发展势头很猛,可是Go的生态也不如Java大。
 
假如从Java的视点看,怎么把其生态使用起来,现在区块链还没有做到那个境地。
 
综合来看,区块链在技能方面与其他技能的结合还有待探索。
 
2. 区块链是交叉学科,需求各方面工程实践的经验
 
在实践方面,咱们期望区块链从业人员一起了解技能和金融业务,这个对人员的本质要求比较高,相应的契合规范的人就更少了。
 
3. 关于对各个区块链技能系统了解的误差。
 
区块链项目开发和概念一日千里,闭门开发可能会走到死胡同,怎么坚持一部分精力更新常识系统,一起保证开发进度对开发人员是有较大挑战的。
 
区块链作为一门新式的技能,涵盖了去中心化、去信赖、同享经济、分布式核算、分布式存储等多方面的内容,检测著技能人员的学习和考虑能力。
 
在未来,区块链项目开发将同人工智能一起,会影响到普通人日子的方方面面。
 
有需要了解区块链项目开发的可以联系链新科技,链新科技多年区块链行业经验,区块链项目开发各项技术解决方案成熟。是专业的区块链项目开发公司 
1

联系方式

 
  • 服务热线:彭17158684783
微信
 

联系地址

 
深圳总部:深圳市龙华新区民治大道民治地铁站B出口(离深圳北站三公里)
香港办事处:香港九龙尖沙咀么地道尖沙咀中心东翼A座1607室
澳门办事处:澳门罗理基博士大马路商业中心一期808