第四期线上 Workshop 回顾

简介: 由 GearFans 举办的 “Gear 中文第四期线上 Workshop” 于 2022 年 2 月 18 日成功举行。

由 GearFans 举办的 “Gear 中文第四期线上 Workshop” 于 2022 年 2 月 18 日成功举行。

本次 Workshop 由 Gear 小助手主持,并邀请来自俄罗斯的 Gear 开发者 Louisa 作为本次嘉宾,为我们讲解如何使用 Gear 开发 NFT 智能合约。Louisa 是莫斯科物理技术学院的初级研究员,她在密码学、区块链和开发智能合约方面很有研究。她参加了多次黑客马拉松,从事于区块链开发工作。曾经为 EVM、Solana 做了很多贡献,参与其中智能合约的编写,现于 GEAR 团队负责智能合约开发。

Nicole 首先介绍了 Gear 以及 Gear 的关键技术。


2fb54ec311dc466d86b334df35cd8c3b.png

1f4e3514f626d06c01cff988b64a87ff.png

并发计算系统有两类常见的通信方式:共享内存通信——并发程序通过更改共享内存位置的内容进行通信;消息传递通信——通过消息交换进行并发程序通信。

通常,消息传递并发比共享内存具有更好的性能。在消息传递系统中,每个进程的内存开销和任务切换开销更低。有很多理论可以用来理解消息传递系统,比如说 Actor 模型。对于进程间通信,Gear 使用 Actor 模型,Actor 模型的原理是程序从不共享任何状态,只是在彼此之间交换信息。作为先进的语言概念,Actor 模型越来越流行,现在许多新的编程语言都在使用它。

61cb459ef77bd67b1db385721152d9bc.png

相较于典型的文本和原生代码,WebAssembly 的体积更小,便于将二进制文件传输到网络缓慢的设备上,这将大大提高文件传输效率。WASM 还支持用不同语言编写的智能合约,这大大扩展了智能合约开发者可用的语言家族。此外,WASM 是独立于硬件之外的,具有很高的便携性。而 Actor 模型将保证网络的稳定、高效和安全。这两个独特的功能确保交易以最快的速度在 Gear 上运行,从而保证成本最低。


接下来,Nicole 简要介绍了 Gear 的应用场景。

1.png

后续 Nicole 进一步向大家介绍了 Gear 现阶段的发展情况以及 Gear 的创始团队。

2.png

3.png

4.png




接下来,Louisa 向大家讲解如何在 Gear 开发 NFT 智能合约。

5.png

Louisa 介绍了 NFT 的合约代码,具体代码请参考:https://github.com/gear-tech/apps/tree/master/non-fungible-token , 是 nft 接口。

https://github.com/gear-tech/apps/tree/master/nft-example , 是具体例子

NFT的合约接口代码:

// non-fungible-token/src/base.rs
pub trait NonFungibleTokenBase {
  fn init(&mut self, name: String, symbol: String, base_uri: String);
  fn transfer(&mut self, from: &ActorId, to: &ActorId, token_id: U256);
  fn approve(&mut self, owner: &ActorId, spender: &ActorId, token_id: U256);
  fn approve_for_all(&mut self, owner: &ActorId, operator: &ActorId, approved: bool);
  fn balance_of(&self, account: &ActorId);
  fn owner_of(&self, token_id: U256);
}

这几个方法跟 ERC721的核心方法的作用一致。

// non-fungible-token/src/lib.rs
pub struct NonFungibleToken {
  pub name: String,
  pub symbol: String,
  pub base_uri: String,
  pub owner_by_id: BTreeMap<U256, ActorId>,
  pub token_metadata_by_id: BTreeMap<U256, TokenMetadata>,
  pub token_approvals: BTreeMap<U256, ActorId>,
  pub balances: BTreeMap<ActorId, U256>,
  pub operator_approval: BTreeMap<ActorId, ActorId>,
}
impl NonFungibleTokenBase for NonFungibleToken {
  ......
  // 此处是 non-fungible-token/src/base.rs NonFungibleTokenBase 的具体实现
}

在 nft-example 中, 讲 NFT 实现与 Gear 合约的基础架构结合,实现 1 个完整的NFT合约。

大家可以编译 nft-example,并通过 https://idea.gear-tech.io/ 部署合约。

关于 Gear 合约的基础知识,请看之前的文章:Gear 合约大揭秘

在 Q&A 环节,Shooter 和 Louisa 解答了大家的提问。我们从这些提问中摘录了部分问题:

What's the difference between Gear and Ink? (Gear 和 Ink 有什么区别?)

  • 波卡系的平行链大都基于 Web Assembly。它只是同一种标准,比如说 Go 可以编译为 Web Assembly, Rust 也可以编译为 Web Assembly,但这 2 个 wasm 文件的差异很大。Gear 和 Ink 明显的区别就是 Gear 基于 Actor 模型,效率更高。Ink 在代码上会更复杂,理念上和 Solidity 有一定的关联度。


Can gear interoperate evm contracts? (Gear 可以和 evm 合约交互吗?)

  • It can't interoperate evm yet but we hope that it would be able to interoperate with other blockchains. (Gear 目前还无法与 evm 合约交互,但我们有这方面的目标,未来会和更多区块链进行交互。)


以后会有简易的部署节点方式吗?

  • 现在 Gear 的 Wiki 上有一个部署节点的新方式,其实部署节点算是一个基本操作,你需要对 Linux 机器或者对其他机器有一定的了解,目前还没有一个特别简单的部署方式。


本次活动的 PPT 在 https://kdocs.cn/l/cgl52t7yqmme,对Gear技术感兴趣的小伙伴,欢迎查看中文wiki:https://wiki.gear-tech.io/zh-cn/ ,如对wiki翻译有任何建议,欢迎提交 pr,说不定有什么奖励哦。

本次线上 Workshop 圆满结束,感谢社区朋友这一路以来的支持。后续 GearFans 会举办更多线上与线下活动,请持续关注我们的最新资讯,参与我们的精彩活动!


关于GearFans


Gear 是波卡生态的计算组件,GearFans 是 Gear 爱好者社区。

目录
相关文章
|
人工智能 运维 Cloud Native
阿里云祝顺民:云网络领域关键技术创新
2023年10月31日,云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下文简称洛神网络)领域产品服务创新以及背后的技术积累进行了深度解读,不少背后的创新技术系首次重磅披露。
|
算法 数据可视化 前端开发
第三代软件开发-QCustomPlot核心迁移
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
机器学习/深度学习 算法 存储
一文读懂大规模图神经网络平台AliGraph
2019阿里云峰会·上海开发者大会于7月24日盛大开幕,本次峰会与未来世界的开发者们分享开源大数据、IT基础设施云化、数据库、云原生、物联网等领域的技术干货, 共同探讨前沿科技趋势。本文整理自开源大数据专场中阿里巴巴资深技术专家李永先生的精彩演讲,将为大家分享AliGraph:大规模图神经网络平台。
8938 0
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】一、准备工作
随着AI技术的发展,阿里体育推出的“乐动力”、“天天跳绳”等APP,使云上运动会、线上健身等概念备受关注。本文将指导您使用“云智AI运动识别小程序插件”,从零开始开发AI运动小程序,分享这一潮流红利。需提前准备插件申请、掌握相关开发技术并安装好开发工具。
|
9月前
|
NoSQL 关系型数据库 MongoDB
微服务——MongoDB常用命令——集合操作
本节主要介绍MongoDB中的集合操作,包括显式与隐式创建集合的方法。显式创建使用`db.createCollection(name)`,需遵循命名规范(如不能以&quot;system.&quot;开头或包含`\0`字符)。隐式创建则通过直接向不存在的集合插入文档实现,更为常用。此外,还介绍了集合删除方法`db.collection.drop()`及其返回值规则,帮助用户管理数据库中的集合资源。
323 0
「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider和Progress组件
Slider 和 Progress 是鸿蒙系统中的常用 UI 组件。Slider 控制数值输入,如音量调节;Progress 显示任务的完成状态,如下载进度。本文通过代码示例展示如何使用这些组件,并涵盖 进度条类型介绍、节流优化、状态同步 和 定时器动态更新。
336 7
「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider和Progress组件
|
网络协议 物联网 数据安全/隐私保护
物联网卡:什么是NB卡
对于物联网NB卡的操作,我们可以从多个方面进行详细阐述,包括其基本概念、选购注意事项、配置过程以及使用注意事项等。以下是对物联网NB卡操作的全面指导:
|
运维 监控 安全
多云环境下的Docker部署策略
随着云计算的快速发展,多云环境(Multi-Cloud Environment)已经成为了现代应用部署的一种重要选择。在这种环境下,企业可以利用多个云服务提供商的资源来提高可用性、灵活性和容错性。Docker容器技术在多云环境中的应用变得越来越普遍,本文将探讨多云环境下的Docker部署策略,并提供丰富的示例代码,以帮助大家更好地管理和运维容器化应用。
|
弹性计算 开发框架 .NET
阿里云服务器和虚拟主机有什么区别?多维度对比
阿里云虚拟主机便于快速建站,适合初学者,预装常用环境如PHP、ASP等,操作简易。云服务器ECS则提供全面权限与弹性扩展能力,不仅限于建站,亦可用于APP、游戏等场景,更适合技术娴熟的用户。尽管虚拟主机价格较低,但鉴于云服务器性能优越且价格持续下降,推荐选择云服务器以获取更佳性价比与广泛的应用场景。
462 3
|
监控
如何确保多路直播中的视角多样性和同步性?
如何确保多路直播中的视角多样性和同步性?
199 0