cosmos及特定应用程序的区块链

这篇具有很好参考价值的文章主要介绍了cosmos及特定应用程序的区块链。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

特定应用程序的区块链,简单来说,一个区块链就是一个专门的应用程序。为了实现某一特定的去中心化应用而专门实现一个区块链。

传统的用智能合约构建去中心化应用不行吗?

  1. 灵活性不足:智能合约本质上受到虚拟机本身的限制。例如,以太坊虚拟机不允许开发者实现代码的自动执行。
  2. 效率低:智能合约全部由同一虚拟机运行。当实现的应用多了,他们会争夺资源。智能合约需要由虚拟机解释,这与在状态机级别(智能合约是状态机的一部分)实现的本机应用程序相比会限制性能。(cosmos团队测试删除虚拟机后,性能提高了 10 倍左右)
  3. 主权限制:智能合约的利益相关者对其的主权非常有限,并最终被底层区块链的治理所取代。如果应用程序中存在错误,则对此无能为力。

如何构建特定应用程序的区块链?

cosmos及特定应用程序的区块链,区块链

在cosmos生态中构建区块链,基于tendermint共识引擎 (tendermint core、CometBFT) + Cosmos SDK来实现。

tendermint 共识引擎:封装了底层的网络层和共识层,并提供ABCI接口(应用区块链接口),使得转态机(具体的应用功能)与底层的共识引擎相连接。

Cosmos SDK:是用来构建区块链状态机(具体的应用功能)的框架。

借助 Cosmos SDK,开发人员只需定义状态机,tendermint 共识引擎将为他们处理网络上的复制。

共识引擎CometBFT

CometBFT是一个与应用程序无关的引擎,负责处理区块链的网络和共识层。实际上,这意味着 CometBFT 负责传播和排序交易字节。CometBFT 依靠同名拜占庭容错(BFT)算法来就交易顺序达成共识。

CometBFT共识算法与一组称为验证器的特殊节点一起工作。验证者负责将交易块添加到区块链中。在任何给定的区块中,都有一个验证者集合 V。算法会选择 V 中的验证者作为下一个区块的提议者。如果超过三分之二的 V 在该块上签署了 a prevote和 a precommit,并且该块包含的所有交易均有效,则该块被视为有效。验证器集可以通过状态机中写入的规则进行更改。

ABCI

CometBFT 通过一个名为ABCI 的接口将事务传递给应用程序,应用程序必须实现该接口。

cosmos及特定应用程序的区块链,区块链
CometBFT 仅处理交易字节。它不知道这些字节的含义。CometBFT 所做的就是确定性地对这些交易字节进行排序。CometBFT 通过 ABCI 将字节传递给应用程序,并期望返回代码来通知它事务中包含的消息是否已成功处理。

以下是 ABCI 最重要的信息:

  • CheckTx:当 CometBFT 收到交易时,会将其传递给应用程序以检查是否满足一些基本要求。CheckTx用于保护全节点内存池免受垃圾邮件交易的影响。。称为AnteHandler 的特殊处理程序用于执行一系列验证步骤,例如检查是否有足够的费用和验证签名。如果检查有效,则交易将被添加到内存池并转发到对等节点。请注意,交易尚未被处理(即没有发生状态修改),CheckTx因为它们尚未包含在块中。
  • DeliverTx:当CometBFT 收到有效区块DeliverTx时,区块中的每笔交易都会通过 via 传递给应用程序进行处理。正是在这个阶段,发生了状态转换。再次执行AnteHandler,以及事务中每条消息的实际Msg服务RPC。
  • BeginBlock/ EndBlock:这些消息在每个块的开头和结尾执行,无论该块是否包含交易。触发逻辑的自动执行很有用。不过,请谨慎行事,因为计算成本高昂的循环可能会减慢您的区块链,如果循环是无限的,甚至会冻结它。

Cosmos SDK

Cosmos SDK 的强大之处在于其模块化。Cosmos SDK 应用程序是通过聚合可互操作模块的集合来构建的。每个模块定义状态的子集并包含自己的消息/事务处理器,而 Cosmos SDK 负责将每条消息路由到其各自的模块。

举例:

                                      +
                                      |
                                      |  事务通过DeliverTx从整个节点的CometBFT
                                      |  引擎中继到节点的应用程序
                                      |  
                                      |
                                      |
                +---------------------v--------------------------+
                |                 APPLICATION                    |
                |                                                |
                |     Using baseapp's methods: Decode the Tx,    |
                |     extract and route the message(s)           |
                |                                                |
                +---------------------+--------------------------+
                                      |
                                      |
                                      |
                                      +---------------------------+
                                                                  |
                                                                  |
                                                                  |  Message routed to
                                                                  |  the correct module
                                                                  |  to be processed
                                                                  |
                                                                  |
+----------------+  +---------------+  +----------------+  +------v----------+
|                |  |               |  |                |  |                 |
|  AUTH MODULE   |  |  BANK MODULE  |  | STAKING MODULE |  |   GOV MODULE    |
|                |  |               |  |                |  |                 |
|                |  |               |  |                |  | Handles message,|
|                |  |               |  |                |  | Updates state   |
|                |  |               |  |                |  |                 |
+----------------+  +---------------+  +----------------+  +------+----------+
                                                                  |
                                                                  |
                                                                  |
                                                                  |
                                       +--------------------------+
                                       |
                                       | Return result to CometBFT
                                       | (0=Ok, 1=Err)
                                       v

每个模块都可以看作一个小状态机。开发人员需要定义模块处理的状态子集,以及修改状态的自定义消息类型。文章来源地址https://www.toymoban.com/news/detail-778526.html

到了这里,关于cosmos及特定应用程序的区块链的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 构建现代应用程序:区块链和加密货币架构

    作者:禅与计算机程序设计艺术 本文是结合互联网和金融领域相关的专业背景知识,对比分析区块链和加密货币技术在不同场景下的应用以及优劣势,从而阐述如何构建现代应用程序。我们将阐述以下几个方面: 1)什么是区块链和加密货币? 2)区块链和加密货币的特点、

    2024年02月14日
    浏览(30)
  • 区块链技术|DApp与传统应用程序的关键区别

    在数字时代,应用程序已经成为我们生活的一部分,无论是社交媒体、金融服务还是娱乐媒体,应用程序几乎无处不在。然而,随着区块链技术的崭露头角,一种新型应用程序——去中心化应用程序(DApp)正在逐渐崭露头角。本文将探讨DApp与传统应用程序(App)之间的关键

    2024年02月10日
    浏览(30)
  • 两小时手撕一个 Java 版本的区块链应用程序

    区块链是一种分布式账本技术 (DLT),起源可以追溯到 2008 年 中本聪发表的关于比特币的白皮书,它由不断增长的区块组成,这些区块使用加密技术安全地链接在一起。每个区块包含前一个区块的加密哈希、时间戳和交易数据(通常表示为 Merkle 树,其中数据节点由叶子表示)

    2024年02月02日
    浏览(31)
  • Java与Python、Node.js在人工智能和区块链应用程序开发中的比较

    背景 Java、Python和Node.js都是常用的编程语言,它们在不同领域都有广泛的应用。在人工智能和区块链应用程序开发中,这三种语言都具有各自的优势和劣势。 Java的优势 Java在企业级应用中应用广泛,这得益于其跨平台性、安全性和稳定性等特点。在人工智能和区块链应用程序

    2024年02月16日
    浏览(36)
  • 【Android 逆向】程序员高危开发方向 ( 违法软件类型 | 赌博游戏 | 色情类应用 | 涉及金融类软件 | 爬虫类软件 | 区块链货币 | 甄别是否合法 )

    棋牌类 游戏开发 , 写这类游戏的程序员 很容易被抓 , 只要 涉及到了 充值 以及 提现 , 就是涉嫌赌博 ; 常见的 就是 麻将类游戏 , 纸牌类游戏 , 具体的地方麻将或扑克玩法 , 德州扑克 , 21 点 , 老虎机 等 类型的 游戏 ; 抽卡类的游戏 , 充值 然后 赌概率 , 比如原神这种 , 只充值

    2024年01月19日
    浏览(35)
  • 探索宇宙奥秘:Cosmos - 构建区块链网络的新范式

    项目地址:https://gitcode.com/evgenyneu/Cosmos 在不断发展的区块链领域中,一个名为Cosmos的项目正在引起广泛的注意。Cosmos的目标是解决区块链的互操作性和可扩展性问题,打造一个去中心化的互联网新时代。 Cosmos是一个开源项目,它提供了一个由多个独立但相互连接的区块链(称

    2024年04月11日
    浏览(29)
  • 一文带你了解火爆的区块链互联网Cosmos

    Cosmos诞生的背景 假如时间倒退4,5年前,如果有人跟你说他要做一个区块链的互联网,让市面上所有的公链互联互通。你一定觉得他疯了。因为那个时候公链就没有几个,大家谈来谈去还是比特币,以太坊等这些公链。这个时候搞公链的互联互通确实没有什么意义。 不过随着

    2024年02月04日
    浏览(28)
  • 区块链的未来:Cosmos项目如何实现多链互联?

    传统的单体式区块链面临着区块链三难问题,即在安全性、去中心化和可扩展性之间难以平衡。这是因为它们要求每个节点执行所有的功能(共识、数据可用性、结算和执行)。为了解决这个问题,一种解决方案是使用模块化链,将一个区块链的不同角色分配到不同的层级中

    2024年02月05日
    浏览(30)
  • dYdX 在 Cosmos 上部署自己的区块链、v4 将拥有一个完全去中心化的

    已建立的 DeFi 项目通常不会转而构建独立的区块链。 但这正是专注于衍生品的去中心化交易所 dYdX 已经发布了开发自己的区块链的计划。 dYdX 链将使用 Cosmos SDK 和 Tendermint Proof-of-Stake 共识协议构建。这些技术是 Cosmos 生态系统的一部分,COSmos,生态系统是特定应用区块链的互

    2023年04月09日
    浏览(33)
  • 保护您的Android应用程序:Android应用程序安全一览

    我们都知道Android是为所有人设计的——开放、面向开发者、面向用户,这种开放性为今天和明天的移动技术提供了很多便利。然而,开放性也带来了需要妥善处理的安全风险。 安全是我们所有人都关注的重要问题。无论是我们的个人数据、电子邮件、电话号码、凭证、服务

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包