前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阐述区块链项目DAPP系统开发技术解决方案

阐述区块链项目DAPP系统开发技术解决方案

原创
作者头像
开发v_StPv888
发布2022-11-07 09:59:31
3820
发布2022-11-07 09:59:31
举报
文章被收录于专栏:making

  在阐述区块链技术在大数据交易平台应用之前,我们有必要了解数据的“权利”。鉴于数据资产的特殊性,按照德勤的大数据分析报告,在纯学术推演的理想状态下,完整的数据权可以根据应用情况分为多个权利束,如所有权、使用权、收益权、共享权、跨境传输的权利等。权利人可以同时拥有一个或多个权利束,不同权利束下,数据资产的价值也会不同。

区块链项目开发代码展现:

让我们直接开始吧。我们的mint()函数将采用以下参数:

  • owner: &T::AccountId
  • dna: Option<[u8; 16]>
  • genderOption<Gender>

它将返回Result<T::Hash, Error<T>>

粘贴以下代码片段以编写mint函数,取代工作代码库中的ACTION #2:

代码语言:javascript
复制
// 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宏,事件只是一个像这样声明的枚举:

代码语言:javascript
复制
#[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)]

这使我们能够使用以下模式来存放特定事件:

代码语言:javascript
复制
Self::deposit_event(Event::Success(var_time, var_day));

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档