Let's Move Sui环形掌上战争 0基础开发入门到精通(7)

Let's Move 0基础web2向web3迁移指南 (3)

区块链研发的几个方向

区块链研发的几个方向 在区块链方面的研发中,有许多不同的方向和领域可以探索。以下是一些常见的区块链研发方向:

1. 智能合约开发:

智能合约是在区块链上执行的自动化合约,它们可以编写和部署在以太坊、EOS、TRON等平台上。学习智能合约开发可以让你创建去中心化应用(DApps)和构建基于区块链的业务逻辑。

2. 区块链平台开发:

区块链平台开发涉及构建或贡献于现有的区块链基础设施,如以太坊、比特币等。你可以学习如何开发区块链节点、共识算法、网络协议和分布式存储等核心组件。

3. 密码学与安全:

区块链的安全性和密码学密切相关。深入了解密码学算法、数字签名、加密技术和身份验证等方面,可以帮助你设计和实现安全的区块链解决方案。

  1. 对称加密(Symmetric Encryption):使用相同的密钥对数据进行加密和解密。常见的对称加密算法包括DES(数据加密标准)、AES(高级加密标准)和IDEA(国际数据加密算法)。

  2. 非对称加密(Asymmetric Encryption):使用一对密钥,即公钥和私钥,来进行加密和解密。公钥可用于加密数据,而私钥用于解密数据。常见的非对称加密算法包括RSA(RSA 密码算法)和ECC(椭圆曲线加密算法)。

  3. 哈希函数(Hash Function):将任意长度的数据映射为固定长度的哈希值。哈希函数具有单向性,即从哈希值推导出原始数据是非常困难的。常见的哈希函数包括MD5、SHA-1、SHA-256等。

  4. 数字签名(Digital Signature):使用私钥对数据的哈希值进行加密,以验证数据的完整性和身份认证。与非对称加密密钥对相关联。常见的数字签名算法包括RSA和DSA(数字签名算法)。

  5. 随机数生成器(Random Number Generator):生成随机数或伪随机数的算法。密码学中的随机数生成器对于生成强大的密钥和初始化向量等关键用途至关重要。

  6. 密码协议(Cryptographic Protocols):用于在网络通信中确保安全性和保护隐私的协议。例如,SSL/TLS(安全套接层/传输层安全协议)用于保护网站的通信。

  7. 密码学安全性分析(Cryptographic Security Analysis):评估密码系统的安全性,发现算法中的弱点和潜在漏洞,以及设计更安全的密码方案的方法。

  8. 密码学协议设计(Cryptographic Protocol Design):设计安全的密码学协议,使其能够满足特定的安全目标,如保密性、完整性、身份认证等。

4. 去中心化应用(DApp)开发:

DApp 是基于区块链的应用程序,它们在去中心化的网络上运行,具有透明、不可篡改和自主治理的特点。学习 DApp 开发可以让你构建具有区块链特性的应用,如去中心化金融(DeFi)、数字身份、供应链追溯等。

  1. 去中心化:DApp 不依赖于中心化的服务器或单一实体控制。它们使用区块链网络作为运行平台,数据和逻辑分布在网络的多个节点上,实现了去中心化的特性。这意味着 DApp 可以更加透明、开放和抗攻击。

  2. 透明性:区块链的数据是公开可查的,任何人都可以查看和验证交易和状态。DApp 的数据和逻辑也是透明的,用户可以审查和验证应用的功能和运行方式,确保没有隐藏的后门或不公正的行为。

  3. 不可篡改性:区块链的数据是以区块的形式链式存储的,每个区块都包含了前一个区块的哈希值,形成了不可篡改的数据结构。DApp 中的交易和状态变化也被记录在区块链上,一旦被确认,它们就不可更改,确保了数据的可信度和完整性。

  4. 自主治理:DApp 的运行和决策通常由智能合约来管理。智能合约是在区块链上执行的自动化代码,它们定义了应用的规则和行为。DApp 的用户和参与者可以通过投票、提案和治理机制来影响和决定应用的发展和改进。

通过学习 DApp 开发,你可以构建具有区块链特性的应用,例如:

  • 去中心化金融(DeFi)应用:创建基于区块链的金融应用,如借贷平台、去中心化交易所(DEX)、稳定币等,实现无需中介的金融服务。

  • 数字身份应用:利用区块链的去中心化特性,构建安全、可信的数字身份和身份验证系统,为用户提供更好的个人数据隐私和控制权。

  • 供应链追溯应用:利用区块链的不可篡改性和透明性,追踪和记录产品从原材料到最终消费品的整个供应链过程,确保产品的可追溯性和质量管理。

  • 社交媒体和内容平台:建立去中心化的社交媒体和内容平台,让用户能够控制自己的数据和内容,并从中获得更公正的经济回报。

5. 区块链与物联网(IoT):

结合区块链和物联网可以创建安全、可信的物联网解决方案。你可以研究如何将物联网设备与区块链进行集成,实现设备身份验证、数据隐私和可追溯性等功能。

6. 区块链数据分析:

区块链数据分析涉及对区块链上的数据进行挖掘、可视化和分析。通过深入了解区块链数据结构和分析技术,你可以发现有关交易模式、智能合约使用情况和用户行为的洞察。

7. 去中心化身份管理:

区块链技术可以用于构建去中心化的身份管理系统,实现个人数据的安全共享和身份验证。学习去中心化身份管理可以让你掌握基于区块链的身份验证协议和数字身份管理框架。


以上只是一些常见的区块链研发方向,随着区块链技术的发展,还会涌现出更多新的方向和应用场景。选择一个感兴趣的方向,并深入学习相关技术和工具,可以帮助你在区块链领域取得进展和成就。

(未完待续)

Let's Move 中文社区

telegram: https://t.me/move_cn

QQ群: 79489587

Let's Move 从0开始开发Sui工具类应用 (1)

本系列开始讲述sui平台工具类应用的0基础的开发

suiassistant_chapter_1

有消息称 Sui官方的黑客松将要启航了

(具体日期请关注Sui官网)

最近Sui平台就要开始黑客松了,本次黑客松包含了很多课题。

Sui 黑客松大赛

主要有7个赛道:

  • 基础工具
  • zklogin
  • 游戏
  • Move高级特性
  • DeFi
  • 随机数
  • 移动端和大众应用

相信很多小伙伴们都跃跃欲试了吧?(奖金非常诱人哦)

今天Summer.XJ给大家带来一个Sui工具类应用的开发基础教程,目的是让大家可以快速了解掌握Sui平台的应用开发。

由此抛砖引玉,希望大家从中能爆发出更多的灵感和想法,积极参与到黑客松当中去。 灵感来自于 rzexin 大佬的 《SUI Move开发必知必会——SUI Move常用命令之client(网络交互命令)》

有兴趣的朋友可以先拜读一下。

我计划的工具类开发,主要包含以下内容:

  1. 工具本身 一个命令行提示工具(带界面UI的窗口工具)
  2. 合约奖励 结合sui平台合约奖励机制,开发一个合约,用来激励开发者
  3. dApp 开发一个dApp,用来后台管理
  4. github 多人协作开发和维护

工具本身部分

项目名: Sui Assistant (暂定)

概要分析,目前sui命令行已经有很多指令,这些指令需要用户自己记忆和总结,容易前用后忘。 所以,我们开发一个sui助手工具,帮助用户快速使用sui指令。 核心思想就是,

  1. 用户输入命令,然后sui助手工具自动生成对应的指令。
  2. 通过查询功能获取对应指令的参数和用法。
  3. 参考官方文档和一些第三方教程来丰富指令集。
  4. 初步计划使用 rust 语言开发。

设计草案如下: SuiAssistant设计草案

工具合约奖励部分

sui平台合约奖励机制

  • 贡献者获得Sui代币 : 为工具数据库提供正确数据或完善工具功能
  • 开发者获得Sui代币 : 提供工具的全部开发工作
  • 社区获得Sui代币 : 社区对工具的宣传推广
  • 工具盈利模式 : 广告收入

合约部分架构

首先 使用sui cli 建立合约框架

sui move new samv

samv是给本次工具集的合约目录名称,执行成功的话会生成以下目录和文件

  • samv
    • sources
    • Move.toml

soucres目录下是合约源文件,目前里面没有任何内容,Move.toml是sui的配置文件。

新版本的sui生成的Move.toml文件内容如下:

[package]
name = "samv"

# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha
...

[dependencies]
Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" }

...

[addresses]
samv = "0x0"
...

[dev-dependencies]
...

[dev-addresses]
...


生成的toml文件比以前的sui版本多了很多内容 注意这句

# edition = "2024.alpha"

toml文件的注释是#,意思是#后面的内容是注释。目前2024语法暂未正式发布,所以需要指定alpha版本。 我们尝试一下老语法情况下的编译情况。

UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING samv

各位同学编译的时候有可能碰到

82 │         let scaled_numerator = numerator as u128 << 64;
   │                                          ^^
   │                                          │
   │                                          Unexpected 'as'
   │                                          Expected ';'

error[E03003]: unbound module member
   ┌─ C:Users\Administrator\.move\https___github_com_MystenLabs_sui_git_testnet\crates\sui-framework\packages\sui-framework\sources\address.move:43:9

这个问题是因为sui的版本问题, 请使用 1.22.1 版本。因为目前sui的testnet版本已经达到了1.22.1。

合约部分设计:

  • 数据库贡献者列表
    struct Contributors has store{
        user:address,
        score:u64
    }
  • 奖励统计表
    public fun Bonuses()
        

  • 奖励发放
    public fun Distributebonuses(){
        ...
    }

dApp部分

采用官方的dApp开发框架做后台管理界面。 SuiAssistant后台管理界面

github部分

初步想法是:

参与者把指令集和简介已json的形式提交到相应的github仓库。 管理员负责合并和记录。


以上是本章全部了,如果感兴趣的请继续关注后续文章。

想要参与的请联系我。

(未完待续)

Let's Move 中文社区

telegram: https://t.me/move_cn

QQ群: 79489587