# huaweicloud-solution-nft-platform-backend **Repository Path**: HuaweiCloudDeveloper/huaweicloud-solution-nft-platform-backend ## Basic Information - **Project Name**: huaweicloud-solution-nft-platform-backend - **Description**: 本项目是NFT管理平台的后端,主要基于GO语言开发。 提供数字藏品后台功能对接华为云区块链引擎功能,可实现数字资产的确权、可信保存。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-08-01 - **Last Updated**: 2025-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 概述 - 功能描述:本项目是NFT管理平台的后端, 提供数字藏品后台功能对接华为云区块链引擎功能,可实现数字资产的确权、可信保存。 - 开发语言: GO ## 组织结构 ``` ├── huawei-security-go --安全编码相关文件 ├── README.md ├── src | ├── common --HTTP的请求体与响应体 | ├── compress --图片压缩 | ├── conf --配置文件 | ├── config --数据库配置文件 | ├── csp --证书验证 | ├── dao --数据库相关操作 | ├── db --数据库初始化 | ├── errcode --错误码 | ├── go.mod --项目依赖模块 | ├── logger --记录日志 | ├── main.go --程序入口 | ├── model --数据表 | ├── nftservice --路由控制器以及鉴权 | ├── payment --支付相关服务 | ├── service --业务服务 | └── util --工具服务 └── tdc-go-sdk --数字资产链DAC的SDK文件(需要下载) ``` ## 编译 - 软件依赖:GO 1.18.4及以上版本; - 操作系统:CentOS7.5; ## 部署 1. 资源准备:Redis、MySQL、OBS、DAC、IVS、MSGSMS 2. 设置文件src/config/config.go ``` const ( ... dbName = "nftdatabase" #数据库名称设置 ... ) ``` 3. 创建名称为dbName的数据库 4. 把DAC配置文件保存到服务器,位置和证书下载时指定路径相同 5. 设置配置文件config.ini ``` [DBConfig] DB_VIP='127.0.0.1' #数据库地址 DB_PORT='3306' #数据库端口 DB_USER='root' #数据库账号 DB_PWD='123456' #数据库密码 [OBSConfig] OBS_ENDPOINT = '' #obs的endpoint OBS_AK = '' #华为云账户的AK OBS_SK = '' #华为云账户的SK OBS_BUCKETNAME = 'nft' #OBS创建的桶名 [IVSConfig] IVS_ENDPOINT = '' #ivs的endpoint IVS_AK = '' #华为云账户的AK IVS_SK = '' #华为云账户的SK [DACConfig] DAC_CONFIG_PATH='conf/conf.yaml' #DAC配置文件中yaml文件的路径 [SmsMsgConfig] ApiAddress = '' #短信服务的APP接入地址 APP_Key = '' #短信服务的Application Key APP_Secret = '' #短信服务的Application Secret ChannelId = '' #短信服务的通道号 TemplateId = '' #短信服务的模板ID Signature = '' #短信服务的签名名称 ``` 6. 设置配置文件app.conf ``` redisHost = "127.0.0.1" # redis服务器ip redisPort = "" # redis服务器端口 redisPassword = "" # redis密码 redisDB = 0 # 使用的redis数据库 redisPrefix = "NFT_" # redis键前缀 sessionon = true # 开启session sessionname = "sessionId" # cookie的名字 SessionCookieLifeTime = 3600 sessiongcmaxlifetime = 3600 jwtkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o # JWT加密使用的密码 # jwtToken的存活时间单位为分钟 jwtTokenLifeTimeMinute = 60 # JWT token的存活时间,单位为分钟 # 使用http EnableHTTP = true EnableHTTPS = false EnableHttpTLS = false HTTPPort = 80 # 可领取的藏品数量 availableQuantity = 1 ``` 7. 获取tdc-go-sdk 下载GOSample,地址为https://digital-asset-chain.obs.cn-north-4.myhuaweicloud.com/GoSample1.3.1.zip 复制GOSample中的`tdc-go-sdk`到src同级目录 8. 在src目录下运行命令 ``` go mod tidy go build ./nft-server ```