NFT智能合约链游项目系统开发方案丨链游DAPP开发逻辑技术介绍

简介: NFT智能合约链游项目系统开发方案丨链游DAPP开发逻辑技术介绍

Web3j让Java开发者可以轻松地访问以太坊区块链并调用区块链上的智能合约的方法,在本教程中,我们将学习如何创建一个简单的命令行应用来访问区块链上的合约。

1、什么是web3j
Web3j是一个开发包,你可以利用这个开发包快速实现对以太坊/Quorum节点的访问,同时也可以用它为某个智能合约文件生成对应的java封装类,以便在Java应用中调用。

系统学习web3j开发,推荐汇智网的在线互动教程:《Web3j以太坊开发详解》

2、节点安装与智能合约部署
首先我们需要搭建一个以太坊网络并部署智能合约,你可以参考这个repo,按照README说明搭建并部署智能合约。

要调用以太坊链上的合约,我们需要两个东西:

钱包私钥
合约地址
在区块链领域,账号通常称为钱包,不过这是一个比较混乱的词语,有时钱包指的是单一地址,有时又指的是包含多个地址的容器。在本文中,一个钱包指的是单一的以太坊地址,

ganache在启动时会列出10个钱包地址以及其对应的私钥。例如:

(0) 11af9e9f87c53beedfe7eb3f1e9b6e2592b382ab3ecd83a92a6c20cb0c885f63
(1) 7cb8f9f70eac9aca70b514a9a8ebd36a3c2c4a9d28dc9534d6042914ed814161
(…)
复制
在这个教程中,我们将使用0#地址,即:

11af9e9f87c53beedfe7eb3f1e9b6e2592b382ab3ecd83a92a6c20cb0c885f63
复制
部署好的合约也类似:

2_deploy_contracts.js

Deploying ‘SimpleStorage’
————————-

transaction hash: 0x18f4dffba426a2cd63bddf5b8741f0708729515d178d59df0b2a43c5aa85e646
Blocks: 0 Seconds: 0
contract address: 0x3C4c39bd5a928bc19A981c85A00543EEB9f7C795
account: 0x169C8C361e1CC394C3FFefa52FcaB91704cde2b2
balance: 99.99147618
(…)
复制
在上面的输出中,注意contract address部分,表示合约的部署地址,即:

contract-address: 0x3C4c39bd5a928bc19A981c85A00543EEB9f7C795
复制
3、智能合约相关工具安装
我们首先需要安装solidity智能合约编译器:

$ npm install -g solc
复制
然后从这里下载web3j命令行工具,解压并设置PATH环境变量,以便可以在任何目录调用。

4、合约的java封装类
首先编译合约并生成java封装类:

$ solc .sol –bin –abi –optimize -o /

$ web3j solidity generate -b /path/to/.bin \

    -a /path/to/<smart-contract>.abi \
    -o /path/to/src/main/java \
    -p com.your.organisation.name

复制
5、在Java代码中调用合约
现在我们可以调用合约了:

public class App
{
// change contract-address
private static String contractAddress = contract-address;
// main method
public static void main(String[] args) {

   // instantiate web3j
   Web3j web3 = Web3j.build(new
      HttpService("http://localhost:9545/"));
   Credentials credentials = Credentials.create(wallet-address);
   // instantiate the contract
   SimpleStorage contract = SimpleStorage.load(
       contractAddress, web3, credentials, new DefaultGasProvider()
   );
   // say hello
   System.out.println("Welcome " + credentials.getAddress());
   // interact with the contract
   try {
       BigInteger currentValue;
       // get value
       currentValue = contract.get().send();
       System.out.println(currentValue.toString());
       // change value
       contract.set(new BigInteger("1")).send();
       // get value
       currentValue = contract.get().send();
       System.out.println(currentValue.toString());
   } catch (Exception e) {
       e.printStackTrace();
   }

}
}
复制
上面的代码首先用节点URL来初始化Web3j实例,然后使用钱包地址私钥创建一个账户身份凭证对象,并使用合约地址初始化合约,最后调用合约的方法。

相关文章
|
5月前
|
安全
链游系统开发DAPP项目逻辑讲解方案
链游系统开发具有以下优势:   1.Decentralization:Chain game systems are based on blockchain technology and do not rely on centralized servers,providing a more fair and transparent gaming environment.   2.Data security:Through the decentralized characteristics and encryption algorithms of blockchain,the chai
|
区块链 测试技术
DAPP链游开发稳定版丨链游dapp/nft游戏系统开发成熟技术方案及源码详情
随着区块链技术的不断发展,智能合约农场在链游行业中扮演着越来越重要的角色。智能合约农场是一种基于区块链技术的应用程序,它可以帮助链游开发商快速、安全地上线定制游戏软件。本文将介绍智能合约农场在链游行业中的作用以及如何通过智能合约农场快速上线定制游戏软件。
|
存储 人工智能 物联网
NFT链游系统开发(案例详解)丨元宇宙链游开发方案
NFT链游系统开发(案例详解)丨元宇宙链游开发方案
|
算法 区块链 数据库
链游开发NFT游戏开发方案指南
链游开发NFT游戏开发方案指南
|
安全 Go
链游系统开发案例详情/NFT元宇宙链游系统开发方案项目/成熟技术/源码逻辑
Step 1: Requirements analysis and planning. At this stage, the development team needs to have in-depth communication with clients, understand their needs and expectations, and then develop development plans and project plans.
|
存储 人工智能 安全
Opsea NFT智能合约平台系统开发方案介绍/功能详解/源码说明/项目案例
  DAPP是去中心化应用程序(Decentralized Application),它是建立在区块练技术之上的应用程序,具有去中心化、开放性、透明性、安全性等特点,DAPP可以实现各种功能,例如数字货币钱包、去中心化交易所、去中心化社交网络等。O
|
区块链
链游开发丨3D链游系统开发(开发规则)丨DAPP链游系统开发(成熟及技术)丨源码
  区块链技术由此可以从多方面为企业赋能:提供可靠的共享数据,在各方之间建立信任;消除数据孤岛,即通过去中心化的,在一个网络中共享并支持获许可方访问的账本将数据集成到一个系统中;为数据赋予高度安全性
|
存储 JSON JavaScript
链游项目系统开发技术功能丨链游DAPP合约系统模式开发方案
链游项目系统开发技术功能丨链游DAPP合约系统模式开发方案
159 0
|
区块链 Windows
区块链链游项目系统开发技术功能丨链游NFT元宇宙系统开发技术方案
区块链链游项目系统开发技术功能丨链游NFT元宇宙系统开发技术方案
154 0
|
开发框架 分布式计算 JavaScript
什么是NFT链游项目游戏系统开发技术(Demo)采用Solidity 智能合约系统开发方案
什么是NFT链游项目游戏系统开发技术(Demo)采用Solidity 智能合约系统开发方案
151 0
下一篇
DataWorks