PHP实现创建以太坊钱包转账等功能


Posted in PHP onApril 21, 2021

1.Geth下载

(对以太坊了解不深的可以后面自己查找有关geth的资料,与此类似的客户端还有Ethereum、Parity 、Mist),本文采用windows版(Windows系统:geth-windows-amd64-1.8.3)
https://ethfans.org/wikis/Ethereum-Geth-Mirror

安装:

windows版的直接傻瓜式安装到放软件的地方,然后打开安装根目录,这时可以看到有个geth.exe的可执行文件,先别急执行;先在该目录下创建一个piccgenesis.json文件。
piccgenesis.json文件内容如下:

{
"config": {
"chainId": 33,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase": "0x0000000000000000000000000000000000000000",
"difficulty": "0x4",
"extraData": "",
"gasLimit": "0xffffffff",
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": “0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00",
"alloc": { }
}

配置说明请参考:https://www.colabug.com/4943842.html
现在使用cmd命令行工具来运行geth.exe,在该终端下执行如下命令:

geth --datadir “chain” init piccgenesis.json

然后在该终端设置json-rpc,命令如下:

geth --rpc --rpccorsdomain * --datadir ./mychain -rpcport 8534 --port 30308 --identity test --networkid 111111111 --rpcaddr 0.0.0.0 --rpcapi admin,miner,db,eth,net,web3,personal --nodiscover console

注:这里用的是测试网络,不需要同步所有区块,如果要正式应用需要一台linux服务器,开启主网同步所有区块,在打开并设置rpc。

2.使用composer下载web3.php

在此之前本人默认你已有一个本地的测试项目(能跑通),本人用的是tp5的测试项目

要求:

php版本大于7.1且php需开启openssl扩展
安装过程:
请先在composer中加入一行

“minimum-stability”: “dev”,

然后在项目根目录下执行(该项目根目录必须)

composer require sc0vu/web3.php dev-master

或者在 composer.json中加入

“sc0vu/web3.php”: “dev-master”

到这里,准备工作基本完毕。
PHP代码调用web.php接口实现创建新的以太坊账号(在该本地项目需要处理以太坊账号管理逻辑的控制器写,建议随便找个控制器或php页面先测试)
$web3 = new \Web3\Web3(‘http://localhost:8534'); //这里的端口是前面设置的rpc端口号,不要把geth终端关掉
$newAccount = ‘';

$web3->personal->newAccount('123456', function ($err, $account) use (&$newAccount) {
    if ($err !== null) {
        echo 'Error: ' . $err->getMessage();
        return;
    }
    $newAccount = $account;
    echo 'New account: ' . $account . PHP_EOL;
});

执行结果

PHP实现创建以太坊钱包转账等功能

到这里,基本上php+eth的开发就可以跑起来了,下面是web3.php的一些接口使用

https://github.com/sc0Vu/web3.php

gethAPI文档:http://cw.hubwiz.com/card/c/geth-rpc-api/1/4/5/

以上就是PHP实现创建以太坊钱包转账等功能的详细内容,更多关于PHP以太坊钱包的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
PHP产生随机字符串函数
Dec 06 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP微信红包API接口
Dec 05 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
php fseek函数读取大文件两种方法
Oct 12 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
如何使用php生成zip压缩包
Apr 21 #PHP
PHP使用非对称加密算法RSA
laravel ajax curd 搜索登录判断功能的实现
thinkphp 获取控制器及控制器方法
Apr 16 #PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
PHP实现考试倒计时功能代码
Apr 16 #PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
You might like
学习php笔记 字符串处理
2010/10/19 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
详解python的ORM中Pony用法
2018/02/09 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
Champion官网:美国冠军运动服装
2017/01/25 全球购物
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
电台实习生求职信
2014/02/25 职场文书
好人好事演讲稿
2014/09/01 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
周末问候语大全
2015/11/10 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
python3实现无权最短路径的方法
2021/05/12 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL