使用PHP开发以太坊代币与合约——需求

作者: 有丫 | 来源:发表于2019-07-03 11:52 被阅读0次

    最近公司因为调整原因,个人暂时没有开发工作,所以想把现有掌握的使用PHP开发以太坊相关代码整理一下。
    起因是以太坊相关代码中,PHP算是比较少的,而实际项目中,一些功能的实现都是使用python或nodejs相关类库,然后通过命令行调用与PHP交互。由于项目又使用docker的缘故,产生了一系列诸如不知道怎么调用宿主机命令行之类的问题,最后包装成http服务进行交互,感觉甚是麻烦。
    代码在github上开源,地址为https://github.com/NanQi/ethereum-php
    计划代码完善后,发布成composer包,同时会支持laravel。

    使用PHP做以太坊相关开发,有一个类库很全面,https://github.com/sc0Vu/web3.php
    但是web3.php需要搭建本地以太坊节点,我们项目过程中因为本地节点遇到的问题大致有:

    1. 安全问题,ETH被盗
    2. 使用go语言客户端,需要维护所有的keystore
    3. web3.php没有找到超时时间的配置
    4. 本地节点服务器重启后长时间同步区块
    5. 用户使用自己的钱包必须上传keysotre

    其实最大的问题还是一套代码跑不起来,需要依赖本地节点服务。

    此类库不依赖本地节点,使用etherscan和infura代理,主要适用于以太坊代币开发,同时会增加创建合约功能,大致会完成以下几个功能:

    1. 使用私钥创建系统默认钱包(用来做充币地址)
    2. 使用助记词创建钱包(用以钱包项目)
    3. 使用助记词还原钱包
    4. 调用以太坊常用方法(查询交易信息,是否成功,查询以太坊余额等)
    5. 调用合约方法(查询余额等)
    6. 执行事务(给充币地址转以太坊手续费收回代币,转代币)

    如果从项目层面来讲,主要可以完成以下项目需求:

    1. 充币
    2. 提币

    使用公共钱包的流程:

    1. 充币地址充币
      充币地址充币需要每个用户注册或使用时创建一个新的钱包,用户操作APP或网站时查询该钱包中是否有指定代币,有代币则将代币转到公共钱包中完成充币操作。因为因为充币地址对应的钱包刚开始没有以太坊,所以还需要从公共钱包中转部分手续费。
    2. 绑定钱包充币
      既然是绑定钱包充币,自然先要完成绑定钱包功能。类库支持使用助记词创建和恢复钱包,支持密码和自定义BIP44的PATH,用户完成绑定钱包,然后从绑定钱包直接充代币到公共钱包完成充币操作。
    3. 提币
      支持提币到绑定钱包和其他钱包,系统操作公共钱包完成提币操作。

    如果使用智能合约做充提币操作,因为个人没有相关项目经验,不知道需求如何定,所以这里无法给出相关流程。

    需求说明到此结束,欢迎留言交流讨论,个人QQ:二七五零96967

    相关文章

      网友评论

        本文标题:使用PHP开发以太坊代币与合约——需求

        本文链接:https://www.haomeiwen.com/subject/eubthctx.html