Builder 请进:波卡最新开发入门指南

在这里插入图片描述
撰文:Dennis Zoma
编译:OneBlock 社区
本文更新于 2023 年 10 月 3 日,来源:https://wiki.polkadot.network/docs/build-guide

Polkadot 是一个区块链协议,有两个目标:在所有连接的平行链之间提供共享安全性,并允许所有连接的链通过使用 XCM 进行互操作。随着 Substrate 和 Cumulus 等 PDK 的出现,开发和推出新链所需的时间显着缩短。在以前,推出新链需要数年时间,而现在可能只需要几周甚至几天的时间,具体取决于你的目标。

本指南将引导你完成今天就可以采取的步骤,开始使用 Polkadot 构建你的愿景。本文将解释在决定哪种最适合你的架构需求时,平行链和智能合约的区别。

指南提供了四种 build 路线:

  1. 构建平行链

  2. 构建托盘(pallet)

  3. 开发智能合约

  4. 开发 DApp

💡提醒

请记住,这些路线只是建议性的,有很多方法可以利用 Polkadot、Substrate 及其各种开发组件。要获得更多灵感,请查看 wiki 中的开源项目!
在深入研究这些路线之前,我们鼓励你阅读有关 Polkadot 及其网络的信息,以获得有关制作应用的背景信息。

波卡开发生态系统概述

在深入研究各种路径,以及在 Polkadot 上进行开发之前,了解构成以下部分的关键术语非常重要。即使在构想构建哪种类型的应用之前,也应该谨慎地了解 Polkadot 是什么以及与它的关系,每个开发组件在 Polkadot 生态系统中能为你做什么。

在这里插入图片描述

Polkadot 生态系统网络

  • 主网:波卡(Polkadot)
  • 金丝雀网络(Canary network):Kusama
    -Kusama 是一个有价值的金丝雀网络,比 Polkadot 更早获得新功能。期待混乱。
  • 官方测试网:
    -Westend - 功能与当前 Polkadot 主网相同,可能会不时进行下一代功能测试,最终将迁移到 Polkadot。Perma-testnet(不会重置回创世块)。
    -Canvas - 支持基于 Wasm 的智能合约测试网,主要用于 ink! 开发。
    -Rococo - 平行链和 XCM 测试网。偶尔重置(使用新的创世块重新开始)。

Polkadot 主网自 2020 年 5 月开始运行,并以多种编程语言(从 Rust 到 JavaScript)实现。主要的实现是用 Rust 构建的,并使用 Substrate 框架。

与网络交互的工具正在迅速发展;有很多方法可以着手!

但在直接进入代码之前,你应该考虑想要创建的去中心化应用是什么类型,并了解想要在 Polkadot 上构建的开发者可以使用各种范例。

构建平行链

规范而言 Polkadot 称为中继链,它也被认为是零层协议,因为实现了多个平行链(第一层协议)的互操作性和共享安全性。平行链使用平行链协议连接到中继链。
在这里插入图片描述

💡提醒

在本文档中,你将遇到术语运行时(runtime)或 STF(状态转换函数)。两者都指的是相同的概念,因为它们定义了特定系统(即区块链)应该如何处理外部和内部的状态变化。这两个术语在 Polkadot 以及 Substrate 语境中广泛使用。

平行链开启了构建复杂运行时或 STF(状态转换函数)逻辑的可能性,而使用智能合约执行该逻辑的成本太高。然而,与智能合约不同,平行链完全缺乏强制性的燃料(gas)计量系统,并且可能容易到导致无限循环的错误(智能合约的设计可以防止这种情况)。Substrate 中实现的权重系统可以缓解此漏洞,不过它给平行链开发者带来了更多执行正确基准测试的负担。

📌什么是平行线程(Parathreads)?

平行线程或“按需平行链”类似于平行链,使开发者能够对其应用程序的逻辑进行较低级别的控制。两者之间的主要区别在于经济性,因为平行线程的安全成本比平行链低得多,并且是“按需付费”模型。平行线程的成本较低是因为平行线程只会在需要时生成一个块,这与平行链不同,平行链在中继链的每个块上都有一个插槽来生成一个块。构建平行线程时,你可使用相同的工具(例如 PDK)并获得构建平行链的所有好处,而没有成本缺点。

使用 Substrate 构建 FRAME Runtimes

Polkadot 是使用 Substrate 框架构建的。Substrate 是一个用于构建区块链的高度可配置和动态的框架。在较低级别,Substrate 提供了一组工具和库,涉及区块生产、最终性小工具到点对点网络。Polkadot 和 Kusama 以及大多数平行链都是使用 Substrate 构建的。

从本质上讲,Substrate 可以通过提供关键的功能构建块来分解区块链的开发过程,从而无需重新设计开发区块链时通常涉及的复杂机制。

Substrate 可以作为平行链连接到 Polkadot 或 Kusama 等中继链的基础,甚至可以作为形成传统的第一层独立链的基础。

目前,使用 Substrate 最简化的方法是 FRAME,它可以方便地从一组模块(称为托盘 pallets)。在Substrate 中 Runtimes 是使用 WebAssembly (Wasm) 构建的,代表网络的状态转换函数。FRAME 允许一组面向业务逻辑的模块(称为托盘)来构建 runtime/STF 并定义区块链的确切行为方式。从身份到智能合约,托盘在提供链上功能方面可以相当广泛。

尽管 FRAME 被大量使用,但它并不是使用 Substrate 创建有效 runtime/STF 的唯一方法。Substrate 可用于创建基于 web3 概念的新范例和抽象。

💡提醒

尽管大多数平行链利用 FRAME 和 Substrate 来构建用于连接中继链的runtime/STF,但这并不是偶然的。使用其他工具构建平行链是可能的,只要它们遵循平行链协议即可。作为一般经验法则,Substrate提供了通过相对最小的努力使之成为可能的方法。

使用 Cumulus 构建平行链

进一步深入构建平行链,Cumulus 是另一套工具,有助于为 Polkadot 或 Kusama 构建平行链就绪的区块链。Cumulus 利用 FRAME 和 Substrate 创建一种简单的方法来构建你的第一个平行链,确保链遵循平行链协议。

💡提醒

Cumulus clouds(积云)的形状有点像 dot(点);它们共同构成了一个复杂、美观且实用的系统。

对于大多数开发者来说,最好的起点是独立熟悉 Substrate,然后是 FRAME,最后一步是 Cumulus,以了解整个平行链构建过程。通过这种方式,人们可以查看各种范例的应用方式,并就针对其特定用例集成或使用 Substrate 做出决策。

请参阅平行链开发指南,了解如何开始构建平行链或平行线程。

平行链的好处

平行链包含自己的 runtime/STF 逻辑,并受益于 Polkadot 中继链提供的共享安全性和跨链消息传递。平行链允许高度灵活性和定制化,但随着时间的推移需要更多的努力来创建和维护。由于区块链网络技术和经济方面的复杂性,生产级平行链通常需要更多的创建。

平行链为创建者提供了更多空间来从头开始构建货币系统和其他链方面。与智能合约平台相比,它们允许更简洁、更高效地执行复杂逻辑。平行链还在治理形式上提供了更大的灵活性,并且可以比当前的硬分叉过程以争议较小的方式执行完整的升级。
平行链或平行线程支持的一些功能示例:

  • 自定义费用结构(例如,支付固定交易费或按字节付费)。
  • 通过中继链(Polkadot 或 Kusama)共享安全性和最终确定。
  • 针对原生代币和本地经济定制货币政策。
  • 财库将通过状态职能的转变来提供资金。
  • 一种治理机制,可以管理负责分配链上金库的 DAO。

构建托盘

虽然平行链是高度可定制的,但它们的开发通常很复杂。如果你想熟悉 FRAME 和 Substrate,一个好的起点是在开发环境中构建托盘。托盘是一个完全可定制的模块,允许你在基本级别上以相对最少的开发时间实现第一层逻辑,同时仍然允许在自定义链中构建高级功能。

要了解如何构建托盘,请遵循 Substrate 文档。

开发智能合约

智能合约是另一种选择,可以实现更简单的开发者体验。下面是构建智能合约与构建平行链的快速比较:
在这里插入图片描述

📌智能合约和托盘之间有什么区别?

如果你还记得的话,平行链包含通常构建在 Substrate 上的 runtime/STF,后者通常使用 FRAME,而 FRAME 由托盘组成。托盘是 Substrate runtime/STF 的一部分,而智能合约是托盘的产品(请参阅:pallet_contracts)。托盘需要更多的工程和思考,因为它们可以直接影响链的状态。

ink! 和基于 EVM 的智能合约

从较高的层面来看,智能合约只是存在于链上某个地址并可由外部参与者调用的一些代码。无论是基于 EVM,还是使用 ink!、智能合约沙盒、运行在链上的可执行程序。

💡提醒

Polkadot 中继链不支持智能合约。然而,有几个平行链可以。有关所提供环境的更多信息,请参阅智能合约指南。

智能合约的一个流行选择是 ink!。其他提供以 Solidity 和 ink! 编写的基于 EVM 的合约的平行链也可用。

由于智能合约一次存在于一条链上,因此它们可以与同一条链上的其他智能合约具有平滑的互操作性。然而,它们始终会受到其宿主链固有特性的约束和限制。

作为开发者,你需要考虑智能合约的存储和复杂性,以确保 gas 使用量保持在合理范围内。考虑使用去中心化存储页面上列出的选项来保留数据并仅提交链上的内容地址。

📌构建智能合约

请参阅智能合约指南,了解如何开始构建智能合约。

开发 DApp/uApp

如果你的目标是开发 DApp(去中心化应用)或 uApp(不可阻挡的应用),Polkadot 生态系统包含各种 SDK 来利用中继链和平行链。

对于前端应用,存在多种与基于 Substrate 的链(平行链、中继链等)和智能合约接口的选项。这些通常会与 Substrate 节点的 RPC 交互:

  • Polkadot.js

通过 RPC 调用围绕基于 Polkadot 和 Substrate 的链的 Promise 和 RxJS API。它是根据 Substrate 运行时提供的元数据动态生成的。此处提供完整的文档和示例。

有关工具的完整列表,请查看此处:工具、API 和语言

  • Subxt

使用 Rust 通过 RPC 查询外部信息(交易)并将其提交到 Substrate 节点。也称为 Rust Parity。此处提供完整的文档和示例。

有关工具的完整列表,请查看此处:工具、API 和语言

  • React Hooks for ink!

React hooks 库用于 ink! 抽象 polkadot.js 功能的智能合约。此处提供完整的文档和示例。

有关工具的完整列表,请查看此处:工具、API 和语言

  • ink!athon Boilerplate

ink!athon 是一个全栈 DApp 开发的初始工具包,包括 ink! 智能合约和基于 React 的前端,一应俱全。借助方便的帮助脚本和预配置的项目设置,使你快速构建任何 DApp。此处提供了实时示例和完整文档。

有关工具的完整列表,请查看此处:工具、API 和语言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/122962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统】进程的控制和通信

文章目录 一. 实验目的二. 实验内容三. 实验步骤四. 实验结果 一. 实验目的 (1)加深对进程概念的理解,进一步认识并发执行的实质。 (2)掌握Linux 操作系统中进程的创建和终止操作。 (3)理解进程…

计算机网络-应用层(2)

一、DHCP 当需要跨越多个网段提供DHCP 服务时必须使用DHCP 中继代理, 就是在DHCP 客户和服务器之间转发DHCP 消息的主机或路由器。 DHCP 服务端使用UDP 的67号端口来监听和接收客户请求消息, 保留UDP 的68号端口用于接收来自DHCP 服务器的消息回复。 在…

基于 Python 的豆瓣电影分析、可视化系统,附源码

文章目录 1 简介2 技术栈具体实现1.设计豆瓣电影自动化爬虫程序,自动获取电影数据2.对爬取到的数据进行清洗和预处理,包括多维度数据字段清洗和扩充3.将清洗好的数据存储到MySQL数据库中 4 具体效果图5 推荐阅读 1 简介 基于Python flask 的豆瓣电影分析…

win11 右键菜单默认 显示更多选项

win10升级至win11后,一个很大的变化就是右键菜单,其不再显示所有的菜单项,而是默认只显示主要的几项,点击“显示更多选项”后,才会显示所有菜单项。 这对于经常需要用到右键其他菜单项的人来说明,非常的不…

【C++】C++入门(下)--内联函数 auto关键字 nullptr

目录 一 内联函数 1 内联函数概念和定义 2 内联函数特性 二 auto关键字 1 auto概念 2 auto 的使用细则 (1) auto与指针和引用结合起来使用 (2) 在同一行定义多个变量 3 auto不能推导的场景 (1) auto不能作为函数的参数 (2) auto不能直接用来声明数组 4 基于范围的fo…

关于深度学习中Attention的一些简单理解

Attention 机制 Attention应用在了很多最流行的模型中,Transformer、BERT、GPT等等。 Attention就是计算一个加权平均;通过加权平均的权值来自计算每个隐藏层之间的相关度; 示例 Attention 机制 Attention应用在了很多最流行的模型中&am…

C# 海康威视平台API接入 和网页摄像头部署

文章目录 前言相关网址综合安防管理平台网址获取Appkey和Secret/密码和密钥测试个人魔改工具类 海康视频接入获取摄像头Id下载海康Web插件原生Html导入网页设置 JS封装封装代码使用设置成功! 前言 最近有个需求是将海康的摄像头视频画面传到我们平台上,…

C# OpenCvSharp Yolov8 Face Landmarks 人脸特征检测

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Yolov8_Demo {public partial class frmMain…

FL Studio21.2演示版下载

FL Studio 21.2 带有 stem 分离和 FL Cloud,这是一项专为 FL Studio 打造的具有里程碑意义的新服务。其他新功能包括 FL Studio Fruity Edition 的 Audio Clips(音频剪辑)和一个新的模拟建模合成器 Kepler。 为庆祝 FL Studio 21.2 的发布&am…

Vue实现首页导航和左侧菜单,介绍mock.js并实现登录注册间的跳转,实现左侧栏折叠效果,优化Main.vue组件,使用mock.js生成随机响应数据

目录 1. mockjs 1.1 mockjs介绍 1.2 mockjs使用步骤 1.2.1 安装mockjs依赖 1.2.2 在项目中引入mockjs 1.2.3 创建目录和文件 1.2.4 为每个组件准备模拟数据 1.2.5 测试 1.2.6 前端调试 1.2.7 mockjs生成随机响应数据 1.2.8 根据不同响应,给出不同提示 2…

二进制搭建 Kubernetes+部署网络组件+部署CornDNS+负载均衡部署+部署Dashboard

二进制搭建 Kubernetes v1.20 k8s集群master01:20.0.0.50 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02:20.0.0.100k8s集群node01:20.0.0.110 kubelet kube-proxy docker etcd k8s集群node02:20.…

如何通过adb控制安卓手机wifi

一、准备工作 1、先用USB数据线 将手机和电脑连接在一起 1) 数据线连接手机和电脑,选择“传输文件”的连接方式; 2) 在手机上,打开“开发者选项”、“USB调试”; 2、在电脑上安装adb工具,参考…

MySQL(2):环境搭建

1.软件下载 软装去官网下载(社区版):https://downloads.mysql.com/archives/installer/(历史版本可选) 选择下面的,一步到位 2.软件安装 双击 .msi 文件 选完 Custom 自定义后点 next 按 1&#xff0c…

软通动力:打造AI第二增长曲线,图谋新发展

【科技明说 | 重磅专题】 软通动力对于AI的想法还是比较久了,之前在与业内朋友聊到软通动力之时,曾提到软通动力的根基还是在于其多年来的软件服务能力,目前借助AI技术创新的机遇将软件服务能力进一步放大,扩展到更多行…

人工智能基础_机器学习006_有监督机器学习_正规方程的公式推导_最小二乘法_凸函数的判定---人工智能工作笔记0046

我们来看一下公式的推导这部分比较难一些, 首先要记住公式,这个公式,不用自己理解,知道怎么用就行, 比如这个(mA)T 这个转置的关系要知道 然后我们看这个符号就是求X的导数,X导数的转置除以X的导数,就得到单位矩阵, 可以看到下面也是,各种X的导数,然后计算,得到对应的矩阵结…

高阶数据结构学习 —— 图(2)

文章目录 1、BFS1、DFS 1、BFS 广度优先。确定从哪个点开始,然后用队列来完成遍历。拿出一个点就把和这个点相连的其它点放进去,但是这样前面放进过队列的也有可能被再次放入,所以需要做好标记。一个队列,一个标记容器。在邻接矩…

蓝桥杯每日一题2023.10.25

乘积尾零 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 由于需要相乘的数很多&#xff0c;所以我们不能直接进行暴力模拟&#xff0c;我们知道10 2 * 5&#xff0c; 所以我们只需要找出这个数2和5的个数&#xff0c;其中2和5个数小的那个则为末尾0出现的个数 #include<bi…

搭建微信小程序环境及项目结构介绍

一、注册 访问微信公众平台&#xff0c;将鼠标的光标置于账号分类中的小程序上&#xff0c; 点击‘查看详情’ 点击“前往注册” 下方也可以点击注册&#xff1a; 小程序注册页面&#xff1a; 步骤a:进入小程序注册页&#xff0c;根据指引填写信息和提交相应的资料&#x…

黔院长 | 一文了解五脏的脏象!

你知道五脏的脏象是怎样的吗&#xff1f;下面一起来了解一下吧。 首先是我们的心&#xff0c;心主血脉&#xff0c;在体合脉&#xff0c;开窍于舌&#xff0c;其华在面。是说心脏是我们生命的根本&#xff0c;心气推动全身的血脉得以正常运行&#xff0c;心发生的生理和病理可…

应用案例|基于三维机器视觉的曲轴自动化上下料应用方案

Part.1 项目背景 此案例服务对象为国内某知名大型汽车零部件制造工厂&#xff0c;该工厂有针对曲轴工件的自动化上下料需求。由于之前来料码放不规范&#xff0c;工件无序散乱摆放&#xff0c;上料节拍要求高&#xff0c;该工厂上下料效率极低。 Part.2 传统曲轴上下料存在的缺…