EOSIO发布新的开源工具,创建EOSIO™上的一流的移动端体验
仅在很短的一段时间内,我们就见证了创新的EOSIO Web应用的爆炸式增长,其中很大一部分原因是诸如EOSJS这些库的增长。EOSJS每周有超过5000多次下载,它给JavaScript开发人员提供了他们和EOSIO区块链交互及向世界各地的区块链用户兑现承诺的工具。
然而,我们也知道,用户现在本地应用程序的移动端上花的时间更多。很大一个原因是,本地应用往往可以比网页端的应用能带来更多、更好的体验。今天,在面向消费者的产品策略上,本地移动应用是一个重要的组成部分。
正是基于上述因素,所以现在我们很高兴地宣布发布两个新的开源EOSIO工具的alpha版,它们将用以加强EOSIO上的本地移动应用发展,这两个工具是Swift的EOSIO SDK和适用Java的EOSIO SDK。
便利开发者、灵活的架构
这些软件开发工具包(SDK)提供了和EOSIO区块链交互的本地API;创建、签署和广播交易;处理密钥和获得签名;数据序列化/反序列化等。
因为我们的目标是Java和Swift两种编程语言,我们给最受欢迎的移动平台——安卓和IOS——带来了这些功能,我们希望这会给各地更多的用户带来有吸引力的、由EOSIO支持的本地化体验。
这些SDK采用的概念借鉴了EOSJS的想法,即要给大量的用例和环境带来极大的灵活性,这些用例和环境是插入到同一个核心库中的独立、可互换的签名提供程序。
核心库
适用于Swift的EOSIO SDK和适用于Java的EOSIO SKD的核心库负责简化交易的生命周期。他们向开发者提供简单、常用的方法让他们向EOSIO节点创建和使用交易、收集必要的签名和准备及广播必要的交易。但是,大部分繁重的工作发生在插入的提供者身上。
The Signature Provider
签名提供程序
签名提供程序可以说是所有的服务提供抽象化中最灵活的。它负责a)找到哪些密钥可以用来签名;b)要求和获得交易必要的签名。
但是,它是如何执行的就完全依赖开发者选定的出来“插入”该交易的特定签名提供程序。只要切换出签名提供程序,签名请求就可以用好几个方式路由。
签名提供程序能够执行许多有用的功能。比如说,任何需要平台的密钥库或安全硬件签名中的密钥签名的人都可以用签名提供程序配置该动作。同样,如果想从用户设备中的钱包应用获得签名也是如此,因为签名提供程序也可以执行该操作。
对于应用开发者和用户这都是好事。对开发者来说,这个功能意味着根据他们选择的签名提供程序,他们不再会因为处理和保证用户密钥安全而上钩。对用户来说,这意味着他们可以喜欢的应用可以容易和钱包或选定的验证器一起工作,从而创造双赢的局面。除了核心库,alpha测试版中,我们还提供了以下签名提供程序。
-
适用于Swift的EOSIO SDK:Vault签名提供程序:使用储存在Apple的密钥链或设备的Secure Enclave处理器中的密钥对交易进行签名的签名提供程序。
-
适用于Swift的EOSIO SDK:软键签名提供程序:使用内存中的密钥签署交易签名提供程序示例。
-
适用于Java的EOSIO SDK:软键签名提供程序:使用内存中的密钥签署交易签名提供程序示例。
和平时一样,我们鼓励社区其他人能够创建和开源其它签名提供程序。
获得更多关于签名提供程序概念的信息,请参考我们上期文章:EOSJS Major Update V20.0.0 Beta: Entrusting key management to signature providers for a more secure future of javascript development for EOSIO(EOSJS重大更新V20.0.0测试版:委托签名提供者进行密钥管理,为EOSIO提供更加安全的javascript开发未来)
RPC, ABI和序列化提供服务程序
交易还配置了RPC, ABI, 和序列化提供服务程序
-
RPC提供程序负责向节点的所有RPC调用,以及一般的网络处理(可达性、重做和故障转移逻辑等)
-
序列化提供程序处理ABI驱动的交易和动作序列化以及在JSON和二进制数据表示之间的反序列化。
-
ABI提供程序负责在序列化和反序列化时,获取和缓存ABI
尽管交换这些程序的需求比较少,但是抽象化还是非常有价值,尤其是涉及到SDK的其它价值主张的时候——支持非移动端的平台时。