区块链之java调用智能合约(一)编译智能合约

本文介绍了如何使用Java调用Solidity智能合约,包括Solidity的基本概念、在线编辑器 Remix 和 VSCode 的优缺点,以及智能合约的编译和转换。文章通过实例展示了如何将.sol文件转换为.java文件,使用web3j库和命令行工具生成Java合约类,为后续的Java调用智能合约打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

首先,还是一贯的思路,带着问题学习。

在最后,附带上我的Gitee代码,因为国内访问github有时候真的很蛋疼。

提问

1.Solidity是什么?

2.java如何调用Solidity?

解答:

1.Solidity是什么呢?

Solidity是一种语言,为了编写智能合约的一种语言。以*.sol结尾的(类似test.java结尾的java文件)。该语言类似javaScript语法。易上手。

展示个小案例。

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

/**
 * @title Storage
 * @dev Store & retrieve value in a variable
 * @custom:dev-run-script ./scripts/deploy_with_ethers.ts
 */
contract Storage {

    uint256 number;

    /**
     * @dev Store value in variable
     * @param num value to store
     */
    function store(uint256 num) public {
        number = num;

    }

    /**
     * @dev Return value
     * @return value of 'number'
     */
    function retrieve() public view returns (uint256){
        return number;
    }

}

其中于java比较不同的是,里面的数据类型及方法访问定义。

Solidity目前的ide有:remix (一款线上的编辑工具),

及基于node环境的vscode(基于vscode编译需要安装Solidity的环境)。

编译器的差别、

remix:

优点:免安装,可直接使用,易上手,集成基础功能。

缺点:没有本地保存,刷新后,会直接清空当前编写的合同,易丢失文件

vscode:

优点:不易丢失文件

缺点:需要安装插件,需要本地部署,安装框架

2.合约部署,这个是属于区块链的东西,针对后端的java攻城狮们,并不是太了解。

那么接下来说的就是,在java中,如何调用智能合约。

首先,java调用智能合约,原理就是,智能合约部署到区块链后,java调用区块链api。

简单理解为,我们就是调用第三方的api。但是呢,区块链针对这块做了很多加密算法的工作。并不像原始的http那样显示的方式直接调用。这里就需要使用到一些java已经封装好的包了。

引入对应的maven包(具体的版本,到时候看对应的发布)

 <!--web3j-->
    <dependency>
      <groupId>org.web3j</groupId>
      <artifactId>core</artifactId>
      <version>5.0.0</version>
    </dependency>

    <dependency>
      <groupId>org.web3j</groupId>
      <artifactId>codegen</artifactId>
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paul.peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值