LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > FOAM发布基于Haskell的Cosmos SDK开普勒

FOAM发布基于Haskell的Cosmos SDK开普勒

2020-02-20 wanbizu AI 来源:www.cryptoninjas.net

分散位置和地图协议FOAM的开发团队现已发布了开普勒(Kepler),这是一种Haskell语言SDK,用于构建由Tendermint共识引擎支持的区块链应用程序。

嫩薄荷简短摘要

Tendermint BFT是在2014-2015年设计和实施的权益证明共识算法。然后,创建者创建了一家名为Tendermint Inc.的公司,该公司围绕用例和集成展开,最终发展到Cosmos区块链网络。 Cosmos将自己定位为“区块链3.0”解决方案,旨在解决以太坊(2.0解决方案)和比特币(1.0解决方案)的可扩展性和互操作性限制。

Tendermint支持的应用程序如何工作

Tendermint-BFT与名为ABCI(应用程序区块链接口)的套接字协议配对。 Tendermint-BFT本身是一种消息排序算法,用于分布式系统,该系统试图在每个节点上以相同顺序处理状态更新消息。但是,该算法无法确定哪些消息对您的自定义应用程序有效还是无效,或者无法在使用消息更新自身后如何确定节点是否处于有效状态。这就是ABCI出现的地方。 ABCI是允许共识算法将消息验证和状态验证的职责传递给自定义应用程序的挂钩。从Tendermint核心接收并响应ABCI消息的任何应用程序都称为ABCI应用程序。

由于ABCI是套接字协议,因此它本身与语言无关,并且由一组protobuf文件定义。这意味着从原则上讲,开发人员可以使用您想要的任何语言来实现ABCI应用程序。

为什么要嫩薄荷?

如果您是Haskell或Rust开发人员,则可能听说过Cardano或Substrate之类的竞争平台,它们提供类似的“区块链3.0”解决方案。卡尔达诺(Cardano)的部分网络已投入生产(cardano-sl),并对未来交付应用层表示乐观。 Substrate区块链的第一个生产实例刚刚开始出现。

为什么选择开普勒?

由于Tendermint允许开发人员以所需的任何语言编写区块链应用程序,因此它们仅限于实现ABCI服务器的语言,理想情况下,该框架仅限于抽象化更深奥的内部结构的框架。截止到今天,该语言获得的最大支持是官方cosmos-sdk支持的golang语言,Javascript中的选项以及Rust中的一些支持。

“我们相信,在像Haskell和PureScript这样的静态类型语言的支持下,区块链应用程序的开发是最安全,最可靠的,因此我们决定在Haskell中构建通用的Tendermint SDK。因此开普勒。”
– FOAM团队

开普勒建筑亮点

有关使用开普勒制作应用程序的全部内容,请查看官方教程。

总览

开普勒应用程序的基本组件是模块。该模块声明了一些信息:

模块用于处理事务的路由器。 模块用于处理状态查询的路由器。 模块介绍的自定义效果和解释(有关效果的更多信息,请参阅后面的教程)。

开发人员可以将标准模块库插入其应用程序中,例如用于管理令牌余额的银行或用于管理基本帐户信息的身份验证之类的东西。开发人员还可以创建自己的模块来管理应用程序执行的所有操作。

开发人员可以使用类型系统轻松地在模块之间创建依赖关系。例如,如果模块将在交易期间执行令牌转移,则它可以明确声明对银行模块的依赖性。也可能更精确,并仅声明允许令牌传输的效果。

通过简单列出开发人员要使用的模块来定义应用程序。它以一种类似于仆人的方式,将构成用于各个模块的事务和状态查询的路由器,还将自动将自定义应用程序效果解释为SDK所了解的较低级别的系统。

效果系统

效果系统有时被称为代数效果,它提供了一种使用类型系统严格分割一个代码段与另一个代码段的功能的方法。它还允许开发人员从其运行时执行中抽象代码。开普勒是使用多义高阶效果库编写的。简而言之,这有几个主要好处:

SDK明确将不同的职责划分为不同的代码部分。例如,尽管用于查询状态和处理事务的处理程序都可以访问数据库,但是类型系统不允许在状态查询执行期间进行写访问。 应用程序开发人员可以定义自定义效果(例如,用于处理令牌或管理其他自定义应用程序状态),并可以将其与SDK定义的效果无缝集成。 只需为核心效果提供不同的解释,即可更改SDK的运行时间。

申请类型

当应用程序具有类型时,它可以用于派生所有其他有用的工具。使用仆人中发现的相同类型的组合器逻辑,开普勒能够从应用程序类型生成客户端库,该客户端库包含用于免费提交任何类型的事务或查询应用程序中任何状态的功能。例如,这意味着如果开发人员更改了其应用程序用于事务的单个消息的类型,他们将收到一个编译时错误,表明其测试或客户端应用程序已损坏。

—-

原文链接:https://www.cryptoninjas.net/2020/02/20/foam-releases-kepler-a-haskell-based-cosmos-sdk/

原文作者:CryptoNinjas.net

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...