阐述区块链项目DAPP系统开发技术解决方案
2023-06-13 09:14:41 时间
在阐述区块链技术在大数据交易平台应用之前,我们有必要了解数据的“权利”。鉴于数据资产的特殊性,按照德勤的大数据分析报告,在纯学术推演的理想状态下,完整的数据权可以根据应用情况分为多个权利束,如所有权、使用权、收益权、共享权、跨境传输的权利等。权利人可以同时拥有一个或多个权利束,不同权利束下,数据资产的价值也会不同。
区块链项目开发代码展现:
让我们直接开始吧。我们的mint()
函数将采用以下参数:
-
owner
:&T::AccountId
-
dna
:Option<[u8; 16]>
-
gender
:Option<Gender>
它将返回Result<T::Hash, Error<T>>
。
粘贴以下代码片段以编写mint
函数,取代工作代码库中的ACTION #2:
// Helper to mint a Kitty.
pub fn mint(
owner: &T::AccountId,
dna: Option<[u8; 16]>,
gender: Option<Gender>,
) -> Result<T::Hash, Error<T>> {
let kitty = Kitty::<T> {
dna: dna.unwrap_or_else(Self::gen_dna),
price: None,
gender: gender.unwrap_or_else(Self::gen_gender),
owner: owner.clone(),
};
let kitty_id = T::Hashing::hash_of(&kitty);
// Performs this operation first as it may fail
let new_cnt = Self::count_for_kitties().checked_add(1)
.ok_or(<Error<T>>::CountForKittiesOverflow)?;
// Check if the kitty does not already exist in our storage map
ensure!(Self::kitties(&kitty_id) == None, <Error<T>>::KittyExists);
// Performs this operation first because as it may fail
<KittiesOwned<T>>::try_mutate(&owner, |kitty_vec| {
kitty_vec.try_push(kitty_id)
}).map_err(|_| <Error<T>>::ExceedMaxKittyOwned)?;
<Kitties<T>>::insert(kitty_id, kitty);
<CountForKitties<T>>::put(new_cnt);
Ok(kitty_id)
}
FRAME帮助我们使用#[pallet::event]
属性。使用FRAME宏,事件只是一个像这样声明的枚举:
#[pallet::event]
#[pallet::generate_deposit(pub(super) fn deposit_event)]
pub enum Event<T: Config>{
/// A function succeeded. [time, day]
Success(T::Time, T::Day),
}
正如您在上面的代码段中看到的,我们使用属性宏:
#[pallet::generate_deposit(pub(super) fn deposit_event)]
这使我们能够使用以下模式来存放特定事件:
Self::deposit_event(Event::Success(var_time, var_day));
相关文章
- 成都链安“区块链+智慧助警服务平台”入选成都市国家区块链创新应用试点项目
- 阐述区块链NFT铸造分红DAPP项目系统开发分析(成熟案例)
- Golang语言情怀--第98期 区块链技术-以太坊公链合约部署-第4节:MetaMask钱包连接到本地环境
- Web3 协议的前 5 个区块链
- 关于区块链交易所系统开发项目技术功能方案
- Cat 1上链了!紫光展锐打造首个物联网芯片+区块链底层融合解决方案
- R 先生:在区块链上投票将提高选举安全性的说法是误导
- 微软与美银美林合作区块链项目,提升交易效率
- “首届中国区块链开发大赛”落幕,这些是最后决胜项目
- 汇丰银行即将启动区块链试点项目,支持实时交易
- 专访北大经济学博士刘昌用:95%的区块链项目没前途,1%会是未来驱动力
- 不炒币!五大区块链项目齐聚锋火TokenShow,探讨技术应用落地
- 区块链项目如何打假?区块链代码审计,造就完美虚拟世界
- 深耕两年,汇丰完成全球首笔基于区块链的贸易融资交易
- 技术详解DAG区块链项目SPECTRE:围绕一致性建设,投票机制甄别攻击杜绝交易冲突