关于区块链公链项目系统开发逻辑

简介: 区块链公链项目系统开发逻辑

Scaffold Kitty struct
Rust 中的结构是一个有用的构造,可帮助存储具有共同点的数据。出于我们的目的,我们的Kitty将携带多个属性,我们可以将其存储在单个结构中,而不是使用单独的存储项目。在尝试优化存储读取和写入时,这会派上用场,因此我们的runtime可以执行较少的读取/写入来更新多个值。

要包含哪些信息
让我们首先看看单个Kitty将携带哪些信息:

dna:用于识别小猫DNA的哈希值,对应于其独特的特征。DNA还用于繁殖新的小猫咪,并跟踪不同的小猫代。
price:这是一个balance,对应于购买Kitty所需的金额,并由其所有者设置。
gender:可以是Male 或Female 的枚举。
owner:指定单个所有者的帐户 ID。
结构所持有的类型
从上面看我们的结构的项目,我们可以推断出以下类型:

[u8; 16] dna- 使用 16 个字节来表示小猫的 DNA。
BalanceOf price- 使用 FRAME 的自定义类型Currencytrait.
性别 gender- 我们将创建!
首先,我们需要在声明结构之前添加自定义类型BalanceOf和AccountOf。将操作 #1 替换为以下代码段:

type AccountOf = ::AccountId;
type BalanceOf =

<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;

// Struct for holding Kitty information.

[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, TypeInfo, MaxEncodedLen)]

[scale_info(skip_type_params(T))]

[codec(mel_bound())]

pub struct Kitty<T: Config> {

pub dna: [u8; 16],
pub price: Option<BalanceOf<T>>,
pub gender: Gender,
pub owner: AccountOf<T>,

}
请注意我们如何使用derive宏来包含各种辅助traits用到我们的结构中。我们需要添加TypeInfo,以便让我们的结构访问此特征。在pallet顶部添加以下行:

use scale_info::TypeInfo;
对于Gender类型 ,我们需要构建自己的自定义枚举和帮助程序函数。

编写自定义类型Gender
我们刚刚创建了一个结构名为Gender,此类型将处理我们定义的Kitty 性别的枚举。要创建它,您将构建以下部分:

枚举声明,指定 Male和Female

为我们的 Kitty 结构实现一个帮助程序函数。

声明自定义枚举
将 ACTION 项 #2 替换为以下枚举声明:

[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, TypeInfo, MaxEncodedLen)]

[cfg_attr(feature = "std", derive(Serialize, Deserialize))]

pub enum Gender {

Male,
Female,

}
注意derive宏必须在枚举声明之前使用。包裹着我们枚举的数据结构,需要与runtime中的其他类型进行交互。为了使用Serialize和Deserialize,需要将serde添加到pallets/kitties/Cargo.toml中。目前,我们知道如何创建自定义结构。但是,为Kitty结构提供一种分配性别的方法呢?为此,我们需要再学习一件事。

为我们的 Kitty 结构实现帮助程序函数
配置结构对于在结构中预定义值非常有用。例如,当设置与另一个函数返回的值相关的值时。在我们的例子中,我们有一个类似的情况,我们需要以一种根据Kitty的DNA设置的方式配置我们的Kitty的Gender。

我们只会在creating Kittes用到这个函数。我们将创建一个名为gen_gender的公共函数,该函数返回类型Gender并使用随机函数在Gender枚举值之间进行选择。

将 ACTION #4 替换为以下代码段:

fn gen_gender() -> Gender {

let random = T::KittyRandomness::random(&b"gender"[..]).0;
match random.as_ref()[0] % 2 {
    0 => Gender::Male,
    _ => Gender::Female,
}

}

相关文章
|
4月前
|
存储 安全 前端开发
区块链 DAPP 互助逻辑模式系统开发技术方案[源码示例]
Dapp(Decentralized Application)是指不受任何中心化组织或机构控制的、使用特定区块链技术为基础的去中心化应用程序。Dapp 是一种特殊类型的应用,它可以在任何基于区块链技术的系统,例如 Ethereum、EOS 或其他的智能合约系统上运行。
|
4月前
|
存储 安全 区块链
SWAP交易所系统开发|区块链交易所系统开发方案
尽管Web3.0的前景仍然不确定,但像尤派数字传媒这样的先行者正在积极尝试元宇宙,并加速转型的步伐。在面对即将到来的新一代互联网时,尤派数字传媒既不会过于骄傲自大,也不会过于谨小慎微。唯有在当前基础上稳步推进,夯实基础,才能在不确定的环境中获得最大的确定性。
|
4月前
|
安全 编译器 区块链
区块链代币 DAPP 通缩燃烧模式系统开发技术方案
合约代码部署流程可能因区块链技术的不同实现而略有不同,但基本步骤如下:
|
5月前
|
算法 区块链
区块链项目的商业模式有哪些成功案例
**评估区块链项目潜力的关键因素包括:技术创新与应用场景(如共识算法、交易速度)、团队背景与发展战略(团队经验、市场定位)、社区活跃度与合作伙伴(用户参与、合作网络)、透明度与合规性(信息透明、法规遵循)、技术可行性(技术成熟度、安全性)及商业模式与市场可行性(市场规模、用户需求)。这些综合考量帮助判断项目的成功潜力和市场前景。**
|
5月前
|
存储 安全 算法
如何保证区块链项目的安全性和稳定性?
**区块链安全与稳定性关键点:** - 密码学保护数据传输与存储,哈希确保不可篡改 - 安全共识算法(如PoW、PoS)保证节点共识 - 智能合约审计与应急响应机制提升安全性 - 加密、身份验证增强网络安全 - 持续技术改进,采用零知识证明、侧链 - 有效运营团队与社区参与,风险评估和维护 这些措施协同作用,确保区块链项目的稳健运行。
|
6月前
|
存储 算法 安全
区块链系统开发技术规则分析
区块链核心技术包括:1) 哈希算法,利用单向函数将任意数据转化为固定长度代码,确保安全验证;2) 非对称加密,使用公钥和私钥一对进行加密解密,保证信息安全;3) 共识机制,如PoW、PoS、DPoS等,实现快速交易验证和确认;4) 智能合约,自动执行的可信代码,一旦编写即不可更改,用于自动化交易;5) 分布式存储,将数据分散存储在网络各处,涵盖结构化、非结构化和半结构化数据。
|
6月前
|
安全 算法 区块链
区块链系统开发|(成熟技术)/区块链系统开发介绍方案
区块链架构自下而上包括数据层、网络层、共识层、激励层、契约层和应用层。数据层涉及底层区块和基础数据;网络层实现节点间的分布式通信;共识层确保去中心化网络中节点对区块有效性的共识;激励层提供参与区块链安全验证的节点奖励;契约层支持智能合约,实现交易模式的编程;应用层则将区块链技术应用于现实生活场景。激励层、契约层和应用层并非所有区块链应用的必要组成部分。
|
存储 前端开发 安全
DAPP区块链商城系统开发(方案逻辑)丨区块链DAPP商城系统开发(案例设计)/开发项目/源码部署
 区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。从本质上看,区块链是通过去中心化和去信任化,集体维护、分布式存储的可靠数据库。
|
开发框架 安全 前端开发
区块链财务管理平台如何开发?区块链财务管理平台开发源码规则解析
开发一个区块链财务管理平台需要多个方面的技术和知识,以下是一些可能的步骤和考虑因素:
|
存储 安全 区块链
区块链游戏系统开发(开发详细)/案例开发/设计功能/逻辑方案/源码平台
  区块链游戏系统开发是一个复杂而精密的过程。首先,需要进行需求分析和规划,确定游戏系统的功能和特性。然后,进行技术选型和架构设计,选择适合的区块链平台和开发工具。接下来,进行系统的搭建和编码,实现游戏逻辑和用户交互功能。最后,进行测试和优化,确保系统的稳定性和性能。