浅谈以太坊与PHP交互

4TZ(%B$QQRUYNVG885R4XGC.png

前言

最近这段时间,有关注Eth的朋友知道涨了一波,当然我在这方面有点感兴趣,所以一直比较关注3月份左右到现在翻了一倍(期间达到285.72美元),投资的朋友需要谨慎一点,韭菜新手,瑟瑟发抖

什么是以太坊(Eth)

Eth的一种数字代币,被视为“比特币2.0版”,采用与比特币不同的区块链技术“以太坊”(Ethereum),一个开源的有智能合约成果的民众区块链平台,由全球成千上万的计算机构成的共鸣网络。和比特币一样Eth有着自己的通信ERC20协议,节点确认时间更快,成本低,12个块确认。智能合约开发者可以发行代币,支付以太币(ETH)来支撑应用的运行,和其他数字货币一样,以太币可以在交易平台上进行买卖

PHP交互如何与以太坊交互

需要下载Geth客户端,Geth是Go Ethereum开源项目的简称,它是使用Go语言编写且实现了Ethereum协议的客户端软件,也是目前用户最多,使用最广泛的客户端。通过Geth客户端与以太坊网络进行连接和交互可以实现账户管理、合约部署、挖矿等众多有趣且实用的功能。

下载地址:https://geth.ethereum.org/downloads/ 下载好然后安装好,然后运行

使用composer克隆包
composer require aytaceminoglu/erc20-php

代码(这里以USDT为例)初始化

private function __construct()
    {
       
        $this->pass= 'abc123456';
        $this->eth = new EthereumRPC('127.0.0.1', 5145);
        $erc20 = new ERC20($this->eth);
        $this->token=$erc20->token('0xdAC17F958D2ee523a2206206994597C13D831ec7');// USDT顶层合约地址
    }

创建钱包地址

  public function EthCreateAccount(){
        return $this->eth->personal()->newAccount($this->pass);
    }

USDT转账(所有以太坊代币转账都需要使用ETH作为矿工费)

 public function UsdtTransfer($fromAddress,$toAddress,$transAmount,$gas=100000){

        $payData=$this->token->encodedTransferData($toAddress,$transAmount);
        $transaction=$this->eth->personal()->transaction($fromAddress,$this->contractAddress)
            ->amount('0')
            ->data($payData)
            ->gas($gas);
        $txId=$transaction->send($this->pass);
        return $txId;
    }

USDT余额查询

 public function UsdtGetBalance($address){
        $balance=$this->token->balanceOf($address);
        return $balance;
    }

以太坊转账与USDT方式大同小异

public function EthTransfer($fromAddress,$toAddress,$ethAmount,$gas=100000){
        $txId=$this->eth->personal()->sendEthereum($fromAddress,$toAddress,$ethAmount,$this->pass);
        return $txId;
    }

查询以太坊余额

 public function EthGetBalance($address){
        return $this->eth->eth()->getBalance($address);
    }

以太坊有代币(查询所有币种余额)

 public function EthFindAccount(){
        return $this->eth->eth()->accounts();
    }

好了到这里就结束了,随着区块链的发展应用场景会越来越多

你可能感兴趣的:(浅谈以太坊与PHP交互)