链课堂02 | 企业应用开发为何选择Fabric?

最近以太坊的智能合约开发很火。然而,几乎没有企业级区块链应用选择用以太坊开发。结合在实际项目应用过程中的经验来看,小编认为以太坊不适合做企业级应用的原因有这三点:权限控制不够,以太坊智能合约查错纠错门槛高、成本高,以太坊智能合约调用的不确定性。而Fabric在这几点上有很大优越性,小编将在后文为大家一一阐述。

01 多维度权限控制

B端应用的开发很多时候是复杂繁琐的。相比之下,以太坊非常方便,你只需要启动客户端钱包,就可以如下图所示开始智能合约的开发了:

或者用remix:

然而,当一切准备就绪后,客户爸爸告诉我,我们的商业数据属于重要机密,要求对有授权的节点才做数据共享,没有授权的节点应该做数据隔离。然后我们发现,在以太坊上没有数据隔离和权限认证的。

这个时候,Fabric的优势很明显了。完整的多维度的证书权限控制,Channel支持节点之间建立数据隔离,Docker化部署智能合约。客户需要的人家都能满足,客户没想到的,他可能也已经做好了。从下面的证书目录结构就可见一斑:

├── ordererOrganizations
│   └── example.com
│   ├── ca
│   ├── msp
│   ├── orderers
│   ├── tlsca
│   └── users
└── peerOrganizations
├── org1.example.com
│   ├── ca
│   ├── msp
│   ├── peers
│   ├── tlsca
│   └── users
└── org2.example.com
├── ca
├── msp
├── peers
├── tlsca
└── users

02 低查错门槛

不知道广大Solidity开发者听到以太坊智能合约爆出漏洞时是什么心情,反正小编每次听到都会有一种心跳加速、血液循环加快的条件反射。

以前做业务开发的时候小编的流程是这样的:

出BUG的时候大概是这样的:

然而,现实的情况是这样的:

出BUG的时候是这样的:

自从做了以太坊智能合约开发以后,小编的开发流程就变成了这样:

出BUG的时候小编的内心是这样的:

而自从用Fabric做智能合约开发以后,情况是这样的:

出BUG的时候是这样的:

嗯,还是原来的味道,还是熟悉的配方!

03 智能合约调用

不知道大家听到接口调用的时候会想到什么,反正小编的第一个反应就是restful,http,api,tcp等等。然而,自从用了以太坊以后,接口调用的画风就变了。首先你需要有类似下面这样的api:

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}...

然后,你所发起的调用,其实可能是这样的:

0x23b872dd0000000000000000000000006e80d21aa536cefdb4a6d5f879af619ef97157760000000000000000000000009f5217d4a04a10649547f5ccd835e2d69efc2a0e00000000000000000000000000000000000000000000000006f05b59d3b20000

面对这样的调用,小编内心有一种无力感。

当然也可能是类似这样的:

var request = {targets: peerNames,chaincodeId: chaincodeName,
fcn: fcn,args: args,chainId: channelName,txId: tx_id};
let results = await channel.sendTransactionProposal(request);

用json传参数,小编感到很安心。

04 小结

说了这么多,其实企业级的应用,考虑更多的是权限控制,数据隔离,开发成本,运维成本等方面。而以太坊做为目前最权威的智能合约公链,显然侧重点不在这方面。而Fabric本身就是针对企业级区块链平台而设计,相较以太坊来说确实会更适合企业级应用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链领域

CANApp上线——CANSign

现在我们要向您介绍 CanYa 生态系统中的一款全新应用——CANSign。使用链接:https://cansign.io/missing-metamask

822
来自专栏区块链技术指北

加密数字货币和传统分布式系统共识机制

这是「区块链技术指北」的第 13 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」。同时我会...

3375
来自专栏区块链开发科技公司

区块链开发公司 什么是区块链共识机制?

区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,各个节点所观察到的交易事务先后顺序不可能完全一致。 因此区块链系统需要设计一种机制对在...

430
来自专栏钱塘大数据

中国首个区块链标准《区块链参考架构》发布

作者:数据观 ? 2017年5月16日上午,在杭州国际博览中心举行的区块链技术应用峰会暨首届中国区块链开发大赛成果发布会上,首个区块链标准《区块链 参考架构》...

4748
来自专栏区块链大本营

我连敲3年代码, 工资却不如刚入职的TA!

以太坊让世人第一次知道了智能合约的概念,为了支持智能合约,以太坊必须把自己变的特别像一台计算机,那么全球的节点连接到一起,怎么能像一个计算机呢?那就是使用 EV...

1133
来自专栏云计算D1net

区块链安全如何保证?公有私有哪家强?

区块链,比特币背后的分布式账本技术,日后可能会被证明比它支持的货币更有价值,但这种价值必须建立在安全的基础上。当我们开始将该技术付诸实践时,一定要确保我们设置的...

3566
来自专栏区块链入门

第十八课 【ERC875】Hiblock黑客马拉松门票从定制到编码实现

【本文目标】 通过本文,可以从一个HiBlock黑客马拉松活动门票定制,转让,出售和签到为例,说明ERC875的设计初心,ERC875的标准接口分析,也给出了...

922
来自专栏liuchengxu

什么是 Tendermint?

Tenermint 是一个软件,用于在多台机器安全一致地复制一个应用。所谓安全,指的是即使有多达 1/3 的机器出现任意故障的情况下, Tendermint 仍...

1022

所以你是因此而想使用区块链么?

使用区块链有很好的理由和不好的理由。在与人们讨论区块链使用案例的对话中,我注意到一些普遍的困惑,以及源于最初狭义范围内的词语的合成词(通常用于描述比特币的区块链...

3448
来自专栏加密星球

为什么开加密货币交易所是一件很有价值的事情?

加密货币交易市场证明,如果找到正确的方法,将会非常有价值。但是,依据所提供的国家或货币,市场仍然有很多限制,这意味着加密货币交易增长潜力。很多平台选择了转型或者...

1060

扫码关注云+社区

领取腾讯云代金券