透過 Rust 製作 Cli 介面 在 Solana 創建屬於自己的 Token

资讯 2024-07-16 阅读:52 评论:0
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

的全稱是 ,它是在 Solana 鏈上運行的一系列程式。你可以把它想像成官方寫好的一些合約,讓開發者可以輕鬆調用功能。你可以參考這篇文章詳細了解這個概念。

It's called, it's a series of programs that run on the Solana chain. You can imagine it as some of the contracts that are officially written so that developers can ease their functions. You can refer to .

今天我們會來體驗一下這個系列中的 ,我們將會透過 製作 Cli 介面,讓我們可以發行自己的 。你可以在這裡參考這篇文章的範例程式碼。

Today we will be going through this series and we will be making a Cli interface so that we can post our own. You can refer to the sample code for this article at

Solana 是一個開源的區塊鏈項目,它實現了高性能的抗審查區塊鏈,提供各種去中心化金融 (DeFi) 的解決方案。Solana 每秒交易量超過 5 萬筆,平均出塊時間約 2 秒(相較於以太坊每秒 15 筆,幣安智能幣約 100 筆)。由於金融交易的速度與安全需求,這些創新的速度讓 Solana 鏈快速被許多 Defi 以及區塊鏈項目喜愛。

, a source of high-performance anti-censorship block chains that provide solutions for various decentralized finance (DeFi). Solana has over 50,000 transactions per second, with an average time out of 2 seconds (compared to 15 in Taiku, about 100 in coins). Due to the speed of financial transactions and the need for security, these new speeds have made the Solana chain quickly loved by many Defi and regional chains.

Solana 帶來的重要創新之一,就是由 Anatoly Yakovenko 開發的歷史證明 (PoH) 共識機制。這個概念讓該 Solana 擁有極大的可規模性。

One of the important innovations that Solana has brought about is the historical evidence of a common understanding of (PoH) developed by Anatoly Yakovenko

Solana 協定的目的,在於同時服務小型用戶與企業顧客。該協定的設計目標,就是要在降低交易成本的同時,仍然確保可規模性與高速處理。

The objective of the Solana agreement is to serve small users and business customers at the same time.

SOL 是 Solana 的原生 Token,目前有兩種功能:

SOL is the original Token of Solana and currently has two functions:

  1. 支付 Solana 的交易,智能合約的執行手續費
  2. 抵押成為節點驗證交易獲得獎勵。

備註:智能合約是一種電腦間的交易協定,區塊鏈上的所有使用者都可以看到基於區塊鏈的智能合約。

Solana 官網
  • SOL – CoinMarketCap
  • Solana 官方文件
  • 讓我們來準備一下開發環境。

    Let's get ready for the development environment.

    首先,請按以下步驟安裝 :

    First, please install at the following steps:

    1. 利用 來驗證是否安裝成功
    2. 如果沒有找到 ,請嘗試設置環境變數
    3. 如果不使用 ,可以直接透過 官網安裝

    然後,讓我們安裝 Solana 開發環境。Solana 目前有三種網路,分別是:

    Then let's Establish Solana Development Environment. Solana currently has three kinds of networks:

    1. Mainnet:
    2. Testnet:
    3. Devnet:

    我們也可以在本機上安裝自己的節點,這樣在開發測試上就會方便許多。如果只是想嚐鮮的讀者,可以考慮直接使用 完成教學。而如果你是想深入 開發的話,就可以使用本地節點方便開發。

    We can also install our own nodes on this machine, which will be easier to do on the development test. If you want to be a fresh reader, you can consider using them directly to complete your education. And if you want to go deeper, you can use local nodes to make it easier.

    無論是使用本地節點或 ,都需要安裝 Solana 開發環境節點與 Solana Tool。以下內容會以 為例子,其他平台的朋友請參考安裝指南。簡單來說,我們要先在 上輸入指令:

    whether using local nodes or requires the installation of Solana Developer Node and Solana Tool. For example, friends of other platforms refer to .

    
    
    
    
    

    安裝完成後會出現安裝位置,然後我們需要手動設置環境變數。比如說,如果安裝完後出現:

    When the installation is complete, the installation will appear, and then we need to set the environmental variables manually . For example, if the installation is completed:

    
    
    
    
    

    我們就要設置 這樣的環境變數。

    We're going to set up these environmental variables.

    設置完成後,可以輸入 來驗證是否安裝成功。

    When set up, you can enter to verify installation success.

    接下來,讓我們檢查一下機器上的錢包。我們應該會得到一個錢包地址 ,這就是我們本地機器上的錢包,所有在機器上進行的區塊鏈交易,我們都會使用本地機器錢包來進行交易。

    Now, let's check the wallet on the machine. We should get a wallet address. Here's the wallet on our local machine, all the chain deals on the machine, and we'll use the local machine wallet to make the deal.

    備註:如果 發生錯誤,請使用 確認設定,其中 就是本地錢包位置。如果沒有此設定,可以使用 建立。

    3. 用你習慣的 開啟資料夾

    Open folders as you used to do.

    我們可以看到目錄結構中有:

    We can see the contents of the directory:

    • :這是撰寫程式原始碼的地方
    • , 如同 , 守護著我們的套件依賴管理。

    在開始之前,我們需要先安裝將會使用到的依賴。讓我們打開 ,在當中加入以下的 :

    Before starting, we need to install the dependencies that will be used. Let's open them and add the following:

    
    
    
    
    

    如下所示:

    As follows:

    來介紹一下這些依賴的用途:

    Here's a description of the use of these dependencies:

    • :可以方便地將命令行解析成一個 ,這對於我們 的結構上很便利。
    • :可以幫助 顯示進度條資訊,你可以在這裡看看範例。
    • :可以印出日誌
    • :可以加入環境設定來顯示日誌
    • :可以操作 區塊鏈的 接口
    • :可以操作

    接著,讓我們在 內創建一個名為 的資料夾,並且新增兩個檔案:

    Next, let's create a folder named, and add two files:

    
    
    
    
    
    
    
    
    
    

    這個主要的程式碼很簡單,我們先創建 的 ,然後再創建 我們的 ,最後發送交易。

    This major code is simple, we create it first, then we create it, and then we send the deal.

    這邊我們需要先釐清 的一些機制。這 部分與其他區塊鏈有點不同。在其他區塊鏈上,比如是以太坊 ,它的 最常見標準是 ,在轉帳的時候,其實 與 的地址基本上是一樣的,就如下圖所示:

    Here we need to clear up some of the mechanisms. This is a bit different from other sector chains. On other sector chains, for example, in Taiku, its most common standard is , which is essentially the same address at the time of the transfer, as shown in the figure below:

    但在 鏈上,每個 都有自己的 ,每個地址底下可以有多個 ,有點像是在銀行中又開立了外幣存款那種感覺:

    But on the chain, each has its own, and there's more under each address, sort of like opening up a foreign currency deposit in a bank:

    接下來,我們要了解一些 Token 的基本操作,大概可以分成下列幾類:

    Next, we need to understand some of the basic Token operations, which can probably be divided into the following categories:

    • :Token 的轉帳操作
    • :Token 的鑄造
    • :Token 的銷毀
    • :操作 Token 的授權者

    如果想深入了解 SPL Token 的機制,可以參考這篇文章

    If you want to know more about SPL Token's scheme, you can refer to the article at .

    要創建一個 Token,流程就會是:創建 Token -> 鑄造 Token。感覺有點像是發行美元(定義),然後印製美元(供應量)一樣。

    In order to create a Token, the process is to create Token-> molten Token. It's kind of like issuing dollars, then printing dollars.

    好的!這邊完成之後,我們要到 來修改一下程式碼,讓我們可以呼叫指令。

    Okay, when this is done, we're gonna come over here and change the code so we can call the command.

    // /src/main.rs
    
    #[macro_use]
    extern crate log;
    extern crate env_logger;
    
    use env_logger::{Builder, Target};
    use log::{debug, error, info, warn};
    use std::env;
    use structopt::StructOpt;
    use std::num::ParseIntError;
    
    mod create_spl_token;
    
    // 入口
    fn main() {
        let mut builder=Builder::from_default_env();
        builder.target(Target::Stdout);
    
        builder.init();
        let args=Cli::from_args();
    
        // 分析指令,並且執行
        match args.cmd {
            Command::SPL(value)=> match value.spl_operating {
                SPLOperating::CreateToken(info)=> create_spl_token::main(info.decimals),
            },
        }
    
        info!("success!");
    }
    
    #[derive(Debug, StructOpt)]
    struct Cli {
        #[structopt(subcommand)] // Note that we mark a field as a subcommand
        cmd: Command,
    }
    
    #[derive(Debug, StructOpt)]
    enum Command {
        /// SPL
        SPL(SPL),
    }
    
    #[derive(Debug, StructOpt)]
    struct SPL {
        /// SPL Operating
        #[structopt(subcommand)] // Note that we mark a field as a subcommand
        spl_operating: SPLOperating,
    }
    
    // subsubcommand!
    #[derive(Debug, StructOpt)]
    enum SPLOperating {
        /// Create Token
        CreateToken(CreateToken),
    }
    
    #[derive(Debug, StructOpt)]
    struct CreateToken {
        /// decimals
        #[structopt(short, default_value="6", parse(try_from_str=parse_hex))]
        decimals: u8,
    }
    
    fn parse_hex(src: &str) -> Result<u8, ParseIntError> {
        u8::from_str_radix(src, 16)
    }

    這邊的程式碼很簡單,我們製作了一個 ,然後分析指令,並且執行我們剛剛寫好的 。

    The code here is simple, we make one and then analyze the command and execute what we just wrote.

    我們可以在 嘗試執行一下指令。讓我們邊把 節點設定指向。

    We can try to execute the command. Let's point at the node settings.

    應該會看到一段輸出,顯示目前的 。
    接著我們在專案內執行。

    Should see a output showing the current.
    We're running it in the project.

    接著應該會看到一段輸出。

    And then I think I'll see a piece of the output.

    然後我們把 中的地址,貼到區塊鏈遊覽器查詢。記得我們要使用。

    And then we put the address into the block chain browser. Remember we're going to use it.

    恭喜!到這裡我們已經完成透過 製作一個 介面,並且發行 的工作了!

    Congratulations! We've done our job by making an interface and issuing it!

    我們透過了 製作一個 介面,並且發行 ,在其中我們了解了 鏈上的 機制。了解 的基本生命週期,以及 的機制。所有的程式碼都可以在這邊找到,祝你有個美好的 夜晚,我們下次見。當然如果你有任何問題,歡迎在任何地方與我聯絡!

    We've made an interface and published it, in which we understand the mechanisms on the chain. Understanding the basic life cycle, and the mechanisms. All codes can be found here at

    美化布局示例

    欧易(OKX)最新版本

    【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

    APP下载   全球官网 大陆官网

    币安(Binance)最新版本

    币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

    APP下载   官网地址

    火币HTX最新版本

    火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

    APP下载   官网地址
    文字格式和图片示例

    注册有任何问题请添加 微信:MVIP619 拉你进入群

    弹窗与图片大小一致 文章转载注明

    分享:

    扫一扫在手机阅读、分享本文

    发表评论
    平台列表
    美化布局示例

    欧易(OKX)

      全球官网 大陆官网

    币安(Binance)

      官网

    火币(HTX)

      官网

    Gate.io

      官网

    Bitget

      官网

    deepcoin

      官网
    热门文章
    • 从 IPFS社区Meetup谈谈2020年的IPFS的发展历程

      从 IPFS社区Meetup谈谈2020年的IPFS的发展历程
      8月3日, IPFS社区Meetup 如期举办,这一次的社区Meetup由交流与演讲和闪电演示两部分组成,其实该会议主要带领我们回顾了IPFS在2020年的发展历程(包括项目进展、IPFS生态发展等),展示了IPFS及其生态。2020年对于IPFS而言是不平凡的一年,其唯一激励层Filecoin的主网即将上线,这让IPFS和Filecoin在全球范围内得到了前所未有的关注,也推动了IPFS的高速发展。接下来,我们一起走进IPFS在20...
    • 超10万人爆仓,比特币跳水,发生了什么

      超10万人爆仓,比特币跳水,发生了什么
      现货比特币ETF上市第二日,数字货币再迎来抛售。比特币一度跌破42000美元/枚,截止1月13日内跌幅超7%,报42562.1美元/枚。The current Bitcoin ETF is on the second day of the market and the digital currency is sold again. Bitcoin fell by over 7% to $4562.1 on 13 January.现货比特币ETF普遍跌6%左右。其中,DEFI跌...
    • 兴业基金调研远光软件、东芯股份

      兴业基金调研远光软件、东芯股份
      根据6月6日公布的公开市场信息和机构研究,世界安全基金会最近对下列两家上市公司进行了一项研究: 1) 光电软件(工程师基金参与公司专项研究) 其中一个亮点是该公司深入参与建造南方网中心和技术平台,导致南网市场在 " 九天 " 平台产品方面取得重大突破;该公司的Won-宇宙大厅已上线,而且,除了Won-宇宙之外,远洋宇宙的应用现已扩大到Won-宇宙发射、Won-宇宙-教师和政党建设-宇宙;该公司的Far-O-Cloud平台已经实现了完全成熟的国家生产,也可以在全国云中运作。...
    • 0.00003374个比特币等于多少人民币/美金

      0.00003374个比特币等于多少人民币/美金
      0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
    • $DOG暴涨400%,加密货币或许正在重新定义和计量“价值”

      $DOG暴涨400%,加密货币或许正在重新定义和计量“价值”
      近/克洛克-0/5,Meme币狗?走吗?去哪?那个?MOON($ DOG)连续上涨超过230%,突破前期高点,达到0.0062美元。在同一时期,比特币生态的许多主流L2协议代币下跌了50%以上。这些就是我们所说的“价值币”。虽然大起大落不能说明什么,但从过去的牛市来看,领头羊MemeCoin表现非凡。在上一轮牛市中,$DOGE的价格上涨了超过150倍,其市值接近900亿美元。还有其他MemeCoin,如$Shib、$People、$ELON、$AKITA等。2 vkwmkpm...
    标签列表