脉波开发者文档
  • 脉波开发者文档
  • 基础主題
    • 脉波简介
    • MAPO币
    • 全链去中心化应用
    • 全链应用与单链或多链应用的区别
    • 第三方信任跨链与点对点跨链方案区别
    • 比特币二层
      • brc-201
    • 预言机 Oracle
      • Supra: MAP Protocol 上的去中心化预言机
    • 帐户
    • 交易
    • 区块
    • MPT树
    • RLP编码
    • Gas费用
    • 消息跨链
    • 轻客户端
      • MAPO轻客户端
    • 全链开发组件层MOS
      • MOS接口和功能
      • MOS的部署
      • Messenger
    • 中继链(atlas)
      • 节点架构
        • 中继链(atlas)架构 - 区块和交易结构
        • 创世
          • 创世配置 - 介绍创世配置文件
          • 创世合约
            • ABI
              • Accounts
              • Election
              • EpochRewards
              • LockedGold
              • Validators
            • 地址
            • 部署
        • 预编译合约 - 支持的预编译合约
        • 协议
          • Proof of Stake
          • 共识
          • 选举
          • 奖励
          • 治理
      • 部署节点 - 包括公共RPC节点
        • 运行节点(中继链)
        • 归档节点(中继链)
        • 引导节点(中继链)
        • 验证节点 (中继链)
        • RPC节点(中继链)
      • Marker工具 - atlas的简易客户端工具
        • Genesis
        • Validator
        • Vote
        • Common
      • 搭建私有网络
      • 公共网络服务信息
        • 公共网络
      • 示例
        • 如何成为一个 Validator 并加入到 Atlas 网络中
        • 如何成为一个 Validator 并加入到 Atlas 网络中[高级]
    • Compass(maintainer,messenger)
      • Compass - 架构及模块说明
      • Compass配置参数
      • Compass环境与部署
      • Compass二次开发 - 基于compass定义自己的路由服务
  • MAPO技术堆栈
    • 堆栈
      • 接入的链
    • EVM兼容
      • 智能合约语言
      • 智能合约结构
      • 智能合约库
      • 编译智能合约
      • 测试智能合约
      • 部署智能合约
      • 可组合性
      • 智能合约安全性
      • 智能合约形式化验证
      • 开发框架
      • 开发网络
    • 实现跨链互通
      • EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
      • 非EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
    • 如何开发全链应用
    • 轻客户端信息
    • SDK/API - mapo支持的API
      • MOS接口
      • 轻客户端接口
      • 中继链RPC
        • json-rpc
          • atlas json rpc
          • atlas consensus rpc
        • javaScript sdk
        • go-sdk
      • 后端API
        • 浏览器API
        • 数据统计与分析API
  • 零知识证明(zk)
    • 零知识证明
Powered by GitBook
On this page
  • 简介
  • 什么是可组合性?
  • 可组合性是如何工作的?
  • 可组合性带来的好处
  • 延伸阅读
  1. MAPO技术堆栈
  2. EVM兼容

可组合性

Previous部署智能合约Next智能合约安全性

Last updated 1 year ago

简介

智能合约在MAPO-Relay-Chain上是公开的,可视为开放式应用程序接口。 您不需要写自己的智能合约才能成为一个去中心化应用程序开发者,您只需要知道如何与它们交互。 例如,您可以使用现有的智能合约 ,一个去中心化的交易所,在您的应用中处理代币交易逻辑 – 您并不需要一切从零开始。 看看他们的一些 和 合约。

以下MAPO-Relay-Chain统称为MAPO。

什么是可组合性?

可组合性是将独立的组件结合起来,以建立新的系统或输出。 在软件开发中,可组合性意味着开发者可以复用现有的软件组件来构建新的应用程序。 有个理解可组合性的好办法,就是将可组合的元素们视为乐高积木。 每个乐高积木都可以与另一个积木合并,这让你可以通过合并不同的积木来构建复杂的结构。

每个智能合约都是某种乐高积木 — 你可以使用其他项目的智能合约作为你项目的构造块。 这意味着你不需要花时间来重复造轮子或从零开始搭建项目。

可组合性是如何工作的?

智能合约就像是公共应用程序接口,任何人都可以与合约交互或将其整合到去中心化应用程序中以获得更多功能。 智能合约的可组合性一般有三个原则:模块化、自主性和可发现性。

1. 模块化:这是独立组件执行具体任务的能力。 每个智能合约都有一个特定的用例(如 Uniswap 示例所示)。

2. 自主性:可组合的组件必须能够独立运行。 每个智能合约都可以在不依赖系统其他部分的情况下自动执行。

3. 可发现性:开发者无法在外部合约或软件库未公开时调用合约或将库整合到应用程序中。 按照设计,智能合约是开源的;任何人都可以调用合约或派生代码库。

可组合性带来的好处

缩短开发周期

减少了开发者在创建去中心化应用程序(dapps)时的必要工作。 “开放源码意味着每个问题只需要解决一次。”

如果有智能合约解决了某个问题,那么其他开发者可以重用这个合约,所以他们无需解决同样的问题。 这种方法让开发者可以使用现有软件库并添加一些额外功能来创建新的去中心化应用程序。

增加创新

可组合性鼓励创新和实验,因为开发者们可以自由地重用、修改、复制或整合开源代码以达到预期结果。 这样,开发小组在基础功能上将花费较少的时间,并可以将更多的时间分配到新功能的实验上。

改善用户体验

MAPO生态系统中各组成部分之间的互操作性可改善用户体验。 相较于应用程序无法互通的碎片化生态系统,去中心化应用程序在集成外部智能合约后,用户可以获取更多功能。

我们将使用一个仲裁交易的示例来说明互操作性的好处:

如果某个代币在交易所 A 的交易价格高于交易所 B,你可以利用价格差赚取利润。 然而,只有当你有足够的资本来为交易提供资金的情况下,你才能做到这一点(即,从交易所 B 购买代币并在交易所 A 出售)。

在你没有足够资金来支付交易的情况下,闪电贷可能是个理想的办法。 基本的逻辑是,你可以借入资产(无抵押品),并在一笔交易中返还相同的资产。

回到我们最初的示例,仲裁交易者可以拿出大笔闪电贷,从交易所 B 购买代币,在交易所 A 出售它们,退还资本+利息,并将利润保留在同一笔交易中。 这种复杂的逻辑需要将多个合约的调用结合起来,如果智能合约缺乏互操作性,这种调用是不可能做到的。

延伸阅读

还有哪些社区资源对你有所帮助? 编辑本页面以添加!

Uniswap
v2
v3
正如 Naval Ravikant 所说的那样:
可组合性是创新
为什么可组合性对 Web3 很重要
什么是可组合性?