查看原文
其他

Subdev 周记 ▏区块链编程语言必不可少的三大特性

一块链习 一块Plus社区 2020-11-11


Substrate 是Parity主导的面向未来的通用区块链开发框架,它为区块链抽象封装了一整套基础设施,在功能性和易用性之间做到了较好的权衡。
 
一块链习在通过举办全球第一门Substrate开发实战指南——《 Substrate快速入门与开发实战 》课程培养Substrate开发者的同时,也希望成为「中国Substrate开发从业者对话世界」的连接者。

我们基于课程发起了一个每天围绕一个「Substrate」话题讨论的线上打卡活动。第三期课程已经进行到第三周,现在我们将各位同学的第二周优质打卡讨论内容分享给大家,欢迎来一起看看他们的精彩观点。

具体内容如下:


 Day 7 
 说说你眼中的林嘉文博士。


@吴绪曼:
以太坊社区和波卡社区的传奇,没有他就没有今天的以太坊。看起来温文尔雅,原以为是个书呆子,沉浸在编码的世界中,可实际上又兴趣广泛,爱一点社交,热爱创造新事物。

看了一篇报道说,他对加密数字货币不感兴趣,更多的是关注技术本身,更让人心生敬意。
 
@陈威:
先是以太坊黄皮书作者, Solidity创造者.后来开发了稳定高效的parity客户端。现在是Polkadot/Substrate的领军人。Dr. Gavin Wood 为我辈工程师之楷模。
 
@张广宇:
林嘉文博士是大神级的开发人员,完成了以太坊的黄皮书和solidity语言的开发,后来又开发了parity以太坊客户端,为以太坊的发展贡献了巨大的力量。

在Polkadot 项目中提出了中继链和平行链的概念,开发出了Substrate。总之是一个令人膜拜的大神级人物。
 
 
 Day 8 
 说说你所理解的Polkadot、Substrate和以太坊三者之间的关系。
 
@郝明:
首先以太坊、波卡、substrate都是以Gavin为核心开发的区块链项目。

以太坊核心是实现了智能合约,substrate是在研发波卡中提取出来区块链底层架构,可快速搭建区块链项目,波卡最关键部分是跨链通信,实现各个链之间数据与资产互通。
 
@陈威:
Substrate是开发波卡时提取出来的框架. 基于Substrate可以开发几乎是任意的区块链。

 以太坊目前TPS太低, 即使是改为PoS共识也还不够, 目前的技术难以保证足够的去中心化和安全性的前提下提高单链的效率。

所以波卡的意图是重度基于跨链, 打通各个链之间的价值传递.。以太坊和比特币等都可以通过波卡Bridge链接到波卡中继链。波卡平行链之间也可以通过波卡中继链连接到一起.
 
@吴绪曼:
以太坊,substrate, parity 三者都是由Gavin Wood领导的Parity 团队打造的区块链技术平台,用于实现web3.0的技术。

以太坊诞生的略早,开发者扩展其功能将代码部署到链上,是单一链。波卡是专为跨链设计的,连接波卡平行链,甚至桥接BTC和ETH链。

substrate是在打造polkadot时,抽象出来的通用技术框架,可以快速定制化的创建波卡平行链。
 
 
 Day 9
 什么是波卡中的中继链、平行链和转接桥?
 
@林少婷:
拿一个大家一定都知道的品牌来类比
波卡:美团 
中继链:美团app
平行链:美团的应用,比如美食、酒店、外卖模块
转接桥(也像API):美团打车
 
@郝明:
平行链可以理解为基于substrate开发的应用链,中继链负责给各个平行链之间数据做路由,波卡就是中继链,实现跨链沟通,转接桥是用来做跨链接入的,比如接入ETH、BTC,需要开发一条平行链做转接桥包含其他链轻节点
 
@张广宇:
中继链类比来说就是波卡网络的主链,平行链连接中继链,中继链提供统一的共识和安全性。

平行链类似于侧链,可以根据不同的业务场景独立设计,可以是连接到中继链获得安全性也可以独立运行。

转接桥就是一种特殊的平行链,不需要中继链保障安全和提供共识,用于与外部的其他区块链交流通信。
 
 
 Day 10 
 你认为哪些特性是一个用于开发区块链项目的编程语言必不可少的?为什么?
 

2019最受喜爱的编程语言排名

@郝明:
区块链项目比传统软件升级成本高,所以认为其稳定性很重要,内存管理,异常管理,空值等等,区块链上有多种加密算法,共识算法,治理机制等。

相比传统项目设计要复杂很多,要求语言性能要高,另外区块链会管理资产,其安全性更为重要,尽量使用稳定,漏洞少的开发语言。
 
@吴绪曼:
对于一个区块链的初学者来说,我没法评价开发区块链的语言应该有什么样的特性。我只能用我自己的经验来为项目选择一门语言: 

1. 稳定:语言版本的升级,会不会导不兼容,要修改大量的代码。比如项目已经上线十年八年了,再升级过程中尤其要考虑兼容和稳定。 

2. 效率高:尤其是大型项目,性能是个挑战。但是如果硬件配置足够强大,性能也不是个问题。

3. 生态成熟:如果项目需要更多的解决方案,有很成熟的第三方服务来做支持。

4.易上手,可替代性高:当你的团队中有人离开,需要替补队员的时候,那个替补上手的成本要尽量低。 

我还在学习rust,对于一个做了多年java和low code开发的人来学rust确实有难度。用rust实现高效,安全的底层框架是很好的选择。可是如果用它来开发业务,项目延期的风险会很大。

5. 安全性:如果跟钱有关的业务逻辑,选择安全性高的语言,从源头上杜绝类似nullPointerException 当然是更好。

不过跟钱有关的项目都比较严格,会有exception的处理机制,和严格的测试来避免这种异常,那些不控制指针异常的语言也是可以用的。但先天不足,后天弥补的成本有点高。这样一比,安全上Rust确实占优势。
 
@何怡:
第一,高效。因为信息需要频繁地更新到各个节点,如果运行太慢,会导致链上拥挤,大大削弱了用户体验感和服务可用性。

第二,服务可升级机制。区块链技术是个新兴技术,依然在不断的发展。市场上推出的各种应用,都是受限于发布时的技术,将来肯定需要不断的更新迭代。

一个良好的服务升级和更新机制,能让区块链服务提供商,发布更新时不用每次推倒重来,用户体验也更顺畅。
 
 
 Day 11 
 你觉得还有哪些Substrate的模块/周边工具应该有但还没有? 为什么?

@李示佳:
我觉得Substrata还是缺少智能合约的工具,另外还有钱包例子,区块链浏览器做得太简单,没有btc这么多工具
 
@徐贺辉:
更多开发者文档和教程
 
@于超:
我觉得目前最缺的就是完善的文档



更多阅读:

▎Substrate Off-Chian Workers 是什么?如何用?

▎行动代号《创世神》,NEAR线上黑客松来啦!

▎Subdev分享 ▏Substrate Staking代币经济系统讲解


扫码关注公众号,回复“1”加入开发者社群


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存