自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 区块链基础知识

区块链是一个去中心化的账本,它以一连串的加密区块记录交易,这些区块是不可改变的,并分布在一个连接的计算机网络中。在区块链网络中,各个计算机–即节点–相互沟通,形成一个去中心化的点对点(P2P)网络。没有控制网络的中央机构,每个节点都存储了一份构成典范链的区块的副本。在大多数情况下,用户通过发起交易请求与区块链互动。交易被八卦到网络上的其他节点,并由区块作者组装成一个区块。为了确保链上数据的安全和链的持续进展,节点使用某种形式的共识来商定每个区块中的数据状态和交易处理的顺序。在高层次上,所有区块链节点都需要以

2022-06-24 10:24:30 4656 1

原创 Substrate是什么,为什么要选择Substrate

区块链开发很复杂。它涉及复杂的技术(包括先进的密码学和分布式网络通信)你必须掌握这些技术,以便为应用程序的运行和用户的信任提供一个安全平台。还有一些围绕规模、治理、互操作性和可升级性的棘手问题需要解决。这种复杂性为开发者创造了一个需要克服的高门槛。考虑到这一点,要回答的第一个问题是:你想建立什么?Substrate并不完全适合每一个用例、应用程序或项目。然而,如果你想建立一个区块链,那么Substrate可能是一个完美的选择。为一个非常具体的用例定制能够与其他区块链连接和沟通可通过预定义的可组合模块组件进行

2022-06-24 10:22:18 2241

原创 在substarte中使用辅助函数

在pallet内使用辅助功能函数来提高代码的可读性和可重用性。重用辅助函数,跨多个pallet执行常见的“验证”检查。有时,pallet内部的可调度功能会重用其他可调度对象共有的逻辑。在这种情况下,将此逻辑重构为其自己的私有函数非常有用。另外一种情况,随着代码量的增加以在可调度内执行各种检查,可调度函数变得越来越难以阅读。在这两种情况下,使用不能从托盘外部访问的辅助函数是优化代码可读性和重用性的有用工具。接下来,我们将了解如何创建一个加法器辅助函数,该程序检查算术溢出,并且可以在任何可调度中重用。在可调

2022-06-22 10:13:09 179

原创 如何配置区块链的规范

生成chain-spec.json并包含它以供其他节点加入公共网络启动专用网络修改现有的普通链规范而不编辑节点源代码一旦制作了一个Substrate节点,就开始想一个有许多对等点的网络!接下来一起看看,一种统一创建链规范文件并分发它们的方法,以便其他节点可以明确地发现并与新建节点的网络对等。我们刚刚为文件中设置的默认网络 生成了一个普通的链规范文件。该文件可以传递给其他节点2.修改普通链规范(可选)这个可选的步骤,我们可以利用现有的网络的普通链规范,否则就需要修改节点的源来在新的网络上运行。这里我们使

2022-06-20 09:18:55 2858

原创 怎样为Balances设置Genesis

Genesis 配置定义了诸如帐户、余额、自定义托盘的 Genesis 等事物的初始状态。接下来一起看看使用 2 个简单的存储项目配置pallet的Genesis。为了我们的目的,假设已经有了 和 。例如: 代码应该紧随storage items后面。使用 属性, 为pallet编写 struct 。为 struct设置默认值.使用 属性, 实现 trait。这允许执行一些逻辑来定义结构如何将一些内容放入到storage中。接下来要做的是指定我们想要放进链的Genesis sta

2022-06-17 10:12:43 129

原创 怎样配置一个runtime中的常量

在runtime中声明一个常量值是定义固定值或定义根据某些因素动态变化的值的有用工具。接下来一起看看,如何创建用于重置u32存储值的pallet常量。这个值,我们称之为,也可以使用一个名为的方法来修改。2.声明存储项目和事件。使用存储属性宏,声明每个块周期都会修改的值。3.定义pallet的事件。4. 添加处理操作溢出的错误:创建pallet方法和运行时常量1.配置on_finalize.在块执行结束时运行的 on_finalize 函数中的每个 ClearFrequency 块数将 Si

2022-06-16 09:38:19 103

原创 如何配置Instantiable pallets

1、如何配置instantiable palletsInstantiable pallets为包含多个对同一pallet引用的运行时提供单独的存储项目。这对重用单个托盘提供的逻辑的情况下很有用。接下来展示如何创建同一个托盘的两个实例以及如何配置它们的功能。1.实现Instance类型instantiable pallets必须调用宏才能Instance创建类型。Instance在 Config trait、Event 类型和 Store trait 中添加一个泛型类型。 下面的代码片段显示了pallet的

2022-06-14 09:14:06 409

原创 如何集成Basic Pallet

1、创建名为pallet——something的本地pallet,并通过向/runtime/src/lib.rs添加以下内容来导入此pallet:2、配置pallet的runtime实现。假设本地托盘仅具有暴露给运行时的Event和类型。Call将以下内容添加到/runtime/src/lib.rs:3、声明pallet并使其公开。包括运行时宏的Pallet和Storage类型。在construct_runtime!中,添加以下内容:在/runtime/Cargo.toml中,将您的托盘作为本地依赖项

2022-06-14 09:08:45 252

原创 创造我们的NFT,使用Substrate 创建KItties 三

可调度项、事件和错误在本教程的上一节中,我们奠定了旨在管理小猫的所有权的基础 - 即使它们还不存在!在这一部分中,我们将通过使用我们声明的存储项目使我们的托盘能够创建Kitty来使用这些基础。稍微分解一下,我们将写:create_kitty:一个可调度或可公开调用的函数,允许帐户铸造Kitty。mint():一个辅助功能,用于更新托的存储项目并执行错误检查,由 调用。create_kittypallet Events: 使用 FRAME的#[pallet::event] 属性。在本部分结束时,

2022-05-08 12:46:29 268

原创 创造我们的NFT,使用Substrate 创建KItties 二

唯一性、自定义类型和存储映射接下来几个基础步骤,使用以下代码段更新您的pallet代码(如果您不想使用模板代码,请跳过此步骤):#![cfg_attr(not(feature = "std"), no_std)]pub use pallet::*;#[frame_support::pallet]pub mod pallet { use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*;

2022-05-08 12:44:05 262

原创 创造我们的NFT,使用Substrate 创建KItties 一

本次研讨会将教您有关构建区块链的所有知识,该区块链处理称为Substrate Kitties的不可替代令牌(NFT)的创建和所有权。基本设置在我们开始制作Kitties之前,我们首先需要做一些基础工作。本部分介绍了使用Substrate node template设置自定义pallet并包含简单存储项所涉及的基本模式。设置template nodeSubstrate node template为我们提供了一个可定制的区块链节点,包括内置的网络和共识层。我们需要关注的只是构建我们的逻辑runtim.

2022-05-08 12:38:24 350

翻译 创建您的第一个Substrate区块链

区块链软件使单个计算机(称为节点)能够相互通信,形成分散的点对点(P2P)网络。为了确保链上数据的安全性和链的持续进展,节点使用某种形式的共识来商定每个数据块中的数据状态以及处理块的顺序。什么是区块链节点?站在一个high level角度讲, 区块链节点由以下关键组件组成:StoragePeer-to-peer networkingConsensus capabilitiesData handling capabilities for external or “extrinsic

2022-04-25 13:41:21 310

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除