寫在前面的話
從6月初到七月研究了將近一個(gè)月NFT 區(qū)塊鏈這方面的東西,從啥都不會(huì)到了解原理,總算是有點(diǎn)成果了,在這里分享給大家。
核心大綱
- 百度超級(jí)鏈開放網(wǎng)絡(luò)(Solidity語言)
- 集成openzeppelin中的ERC721合約快速完成合約開發(fā)
- Springboot 作為后臺(tái)開發(fā)語言調(diào)用線上合約
- 通過調(diào)用線上合約將數(shù)據(jù)永久存儲(chǔ)在鏈上
由于篇幅受限,在這里我就不過多的闡述有關(guān)NFT的背景知識(shí),總結(jié)成一句話就是把用戶的數(shù)據(jù)永久存到區(qū)塊鏈上使得用戶的資產(chǎn)私有化。
編寫合約于編譯合約
- 依賴安裝
全局安裝 solcjs 用于編譯可部署到鏈上的solidity合約cnpm install solcjs -g
node安裝openzepplin
npm init
npm install --save @openzeppelin/contracts
在項(xiàng)目根目錄編寫合約 main.sol
示例合約詳情
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "../node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "../node_modules/@openzeppelin/contracts/access/Ownable.sol";
contract Xj is ERC721, Ownable {
constructor() ERC721("nft", "MTK") {}
}
合約編寫完成之后通過剛剛安裝的solcjs 進(jìn)行編譯
編譯命令如下
solcjs --abi --bin .\main.sol -o build
最后,合約項(xiàng)目目錄如下,其中build文件夾下的 main_sol_Xj.abi main_sol_Xj.bin這兩個(gè)文件就是咱們需要部署到線上的合約文件了
部署合約到鏈上以及調(diào)用合約方法
以Springboot為例
在部署調(diào)用合約之前需要去百度超級(jí)鏈官網(wǎng)上注冊(cè)賬號(hào),點(diǎn)我去超級(jí)鏈官網(wǎng)
選擇開發(fā)網(wǎng)絡(luò)完成注冊(cè)流程,然后充點(diǎn)錢,10塊夠用很久。
最后得到private.key文件 以及設(shè)置6位的交易密碼,這兩個(gè)在超級(jí)鏈服務(wù)初始化時(shí)需要使用
官方開發(fā)文檔
可以調(diào)用里面的鑄造 轉(zhuǎn)移等方法 生成nft,并交易給個(gè)人用戶。唯一需要注意的是,在百度超級(jí)鏈里有一個(gè)用戶唯一編碼,需要通過用戶輸入獲取,用來確定用戶在百度鏈上的唯一性
在這里獲取
其實(shí)仔細(xì)讀一下openzeppelin里的源碼,就能了解NFT數(shù)字藏品的真正原理文章來源:http://www.zghlxwxcb.cn/news/detail-792087.html
所有的nft藏品數(shù)據(jù)以及權(quán)限控制,其實(shí)都是通過合約里的各種 map(key,value) 等變量來實(shí)現(xiàn)的
藏品數(shù)據(jù)也是存在合約里的map里
通過Java或者調(diào)用合約里的方法去生成修改里面的數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-792087.html
到了這里,關(guān)于開發(fā)那點(diǎn)事(十六)從零開始搭建一個(gè)NFT數(shù)字藏品平臺(tái)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!