以太坊区块链java开发:web3j

以太坊 java开发依赖

        <dependency>
            <groupId>org.web3j</groupId>
            <artifactId>core</artifactId>
            <version>3.5.0</version>
        </dependency>

连接到以太坊同步节点

private String gethURL = "http://localhost:8545";

    private void connectGeth() {
        // --rpcport value HTTP-RPC服务器监听端口(默认值:8545)
        this.web3j = Admin.build(new HttpService(gethURL));
        if(null==web3j) {
            System.out.println("connectGeth error");
        }
    }

创建账户,需要输入密码,返回账户地址 0x00000...

    public String addAccount(String password) {
        // walletId:$|chainId:$|account:$
        if (web3j == null)
            connectGeth();
        String account = "";
        try {

            String fileName = WalletUtils.generateNewWalletFile(password, new File(keystorePath));
            Credentials credentials = WalletUtils.loadCredentials(password, keystorePath + "/" + fileName);
            account = credentials.getAddress();

        } catch (InvalidAlgorithmParameterException e1) {
            e1.printStackTrace();
        } catch (NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (NoSuchProviderException e1) {
            e1.printStackTrace();
        } catch (CipherException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        addCredentials(account, password);
        return account;
    }

以太币(矿币)转账

    private void transfer_ETH(String _from, String password, String _to, BigInteger value, Long logId) {
        Credentials credentials = loadCredentials(_from, password);
        try {
            //获取nonce
            EthGetTransactionCount count=web3j.ethGetTransactionCount(_from, DefaultBlockParameterName.LATEST).send();
            BigInteger nonce=count.getTransactionCount();
            //创建交易
            //BigInteger val=Convert.toWei(new BigDecimal(value), Unit.ETHER).toBigInteger();
            RawTransaction rawTransaction=RawTransaction.createEtherTransaction(nonce, GAS_PRICE, GAS_LIMIT, _to, value);
            //验证签名
            byte[] signMessage = TransactionEncoder.signMessage(rawTransaction, credentials);
            String hexValue=Numeric.toHexString(signMessage);
            //发送交易
            CompletableFuture<EthSendTransaction> sendAsync &#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以太坊区块链浏览器是一个可以查看以太坊区块链上所有区块、交易、智能合约等信息的工具。搭建一个自己的以太坊区块链浏览器可以方便地查看和分析以太坊网络中的数据。下面是搭建以太坊区块链浏览器的一般步骤: 1. 安装节点软件:首先需要安装以太坊节点软件并同步区块链数据。以太坊节点软件有很多种,比如 Geth、Parity 等。这里以 Geth 为例,安装方法可以参考以太坊官方文档。 2. 安装数据库:以太坊的数据需要存储到数据库中才能被浏览器查询。目前比较流行的数据库是 MongoDB 和 MySQL。这里以 MongoDB 为例,安装方法可以参考 MongoDB 官网。 3. 安装浏览器软件:常用的以太坊区块链浏览器有 Etherscan、Etherchain 等。这里以 Etherscan 为例,安装方法可以参考 Etherscan 官网。 4. 配置浏览器:在浏览器的配置文件中设置节点和数据库的连接信息,以及其他一些参数。具体配置方法可以参考浏览器的官方文档。 5. 启动浏览器:启动浏览器软件并访问浏览器的网址即可使用。在浏览器中可以查看以太坊网络中的所有区块、交易、智能合约等信息。 需要注意的是,搭建以太坊区块链浏览器需要一定的技术水平和经验,建议有一定的区块链开发经验的人员进行操作。同时,由于以太坊网络在不断发展和变化,搭建过程中可能会遇到各种问题,需要耐心解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值