Solana NFT 開發第一話 準備篇

  • FrankFrank
  • /
  • 12 分鐘閱讀
  • /
  • Jun 3, 2022
  • /
  • - views

接下來的一系列文章,將說說怎樣在 Solana 上發佈 NFT。

首先,在 Solana 上發佈 NFT,相對比 Ethereum 上發佈 NFT 要來的簡單些。因為全過程可以完全不需要撰寫任何智能合約,透過一系列指令 (Command Line) ,就可以完成發佈過程。

開始前先說說簡單的 Solana NFT 背景。 在 Solana 的世界似乎並沒有一個類似 ERC721 這樣公認的標準, 而 Metaplex 則是其中一個目前最多被採用的 NFT 實現。 Metaplex 本身可以理解為是制定了一系列標準的NFT 工具平台,其中包括了一系列的智能合約,工具,甚至 UI,透過這些工具,可以讓大家快速發佈自己的 NFT。 Candy Machine 則是 Metaplex 的一部分,其本質是一個 Solana 智能合約 ( 在 Solana 中稱為 Program ),保證了 NFT 整個挖掘/出售過程能夠順利進行。而 Candy Machine CLI 則是 Metaplex 針對 Candy Machine NFT 推出的工具程式,透過幾行指令,即可完成 NFT 的發佈。

The Candy Machine program behaves like a real-world mechanical candy machine, where a person expects to put a coin into the machine and get one item out of it. The usual exceptions apply, for example and most significantly it won't take your coin if it's out of candy.

安裝必須的工具

首先確保已經安裝了最新的 Git 以及 NodeJS,這部分本文省略。

然後我們從 github 下載 metaplex 的完整開源項目:

git clone git@github.com:metaplex-foundation/metaplex.git \
  ~/metaplex

另外,我們還要安裝 ts-node:

npm install -g ts-node

安裝完成後,檢查 ts-node version:

ts-node --version
v10.4.0

安裝 Solana CLI :

sh -c "$(curl -sSfL https://release.solana.com/v1.10.23/install)"

安裝完成後確保可以順利執行 solana 指令,如果出現 command not found 等問題,需要檢查 path 是否已經設定好。 可參考官方安裝指引處理。

solana --version
solana-cli 1.9.13 (src:devbuild; feat:1070292356)

總結一下:

$ git version
git version 2.30.0

$ node --version
v16.15.0

$ yarn --version
1.22.4

$ ts-node --version
v10.4.0

$ solana --version
solana-cli 1.9.13 (src:devbuild; feat:1070292356)

設定開發網路和錢包

為了方便開發,我們將預設網路設為 devnet:

solana config set --url https://api.devnet.solana.com

然後,我們建立開發錢包:

為了方便區分,可以使用可選的 --starts-with 來建立一個指定開頭的錢包地址:

solana-keygen grind --starts-with DEV:1  <---- 這個指令可以產生一個以 "DEV" 開頭的地址,純粹方便標記用途,這段話不要 copy 哦

Searching with 8 threads for:
	1 pubkey that starts with 'DEV' and ends with ''
Searched 1000000 keypairs in 5s. 0 matches found.
Searched 2000000 keypairs in 10s. 0 matches found.
Wrote keypair to DEVKXTfCTqEzgyZ98GUvxdW5raRCfMKXm5KxzgyTjRqb.json

上述指令完成後會在當前路徑產生一個 WLTQ2Q6hzrixss5nM6yXvZSAczcYWiwHyQYoeAscVH9.json 裡面記錄了錢包的 private key 等重要資料,請務必保存在安全位置

為方便開發,我們將這個 key file 搬到 ~/.config/solana/

mv DEVKXTfCTqEzgyZ98GUvxdW5raRCfMKXm5KxzgyTjRqb.json   ~/.config/solana/

設定預設使用剛才產生的 key file:

solana config set -k ~/.config/solana/DEVKXTfCTqEzgyZ98GUvxdW5raRCfMKXm5KxzgyTjRqb.json

任何 solana on-chain 的操作都需要支付 Gas,所以我們需要先取得一些測試用的 Solana:

solana airdrop 2

上述指令可以申請 2 個 devnet 的 SOL , 完成後檢查錢包餘額:

solana balance --url devnet   

至此,準備工作已經完成, 接下來下一篇文章,我們可以準備開始製作 NFT 了。