coon-design/php-gridcoin

用于 Gridcoin 研究的 PHP RPC 调用器

dev-main 2024-06-30 16:56 UTC

This package is auto-updated.

Last update: 2024-09-30 17:29:18 UTC


README

phpGridcoin 是一个用于 Gridcoin 研究钱包的 PHP RPC 连接器。它连接到本地或远程钱包以获取链信息。

需要修补的版本: 请在此处查看更多信息

PHP 库

该 PHP 库被编写为一个静态类,这意味着我们只需设置一次,无需再次调用。

库位于 /src

  • /src/models/chain 包含链对象的模型
  • /src/models/wallet 包含钱包功能的模型
  • /src/routes 包含钱包功能的路由
  • /src/Wallet.php 包含与 Gridcoin 钱包通信的主类

要连接到 Gridcoin 钱包,您只需要以下代码。

use CoonDesign\phpGridcoin\Wallet;

// Connect to your local wallet
Wallet::setNode("localhost","25712","myRPCUser","myRPCPasswd");

// Get Current Block Count
$currentBlockCount = Wallet::getblockcount();

如果您需要连接到第二个钱包,可以通过添加参数来完成,如下所示

$mySecondWallet = Wallet::setNode(...);
$mySecondWallet->getBlockCount();

钱包连接参数在钱包 gridcoinresearch.conf 文件中设置,如下所示

rpcuser=myRPCUser
rpcpassword=myRPCPasswd
rpcport=25712

OpenAPI

phpGridcoin 在 public/wallet/v1 处内置了一个基于 OpenAPI 的 API,可用于允许远程访问。

请参阅 示例 Apache vhosts 文件,可使用。

钱包命令

并非所有钱包命令都已添加,或者将来会添加。有趣的是读取链的命令。

所有 钱包命令 的列表可以在这里找到。

某些命令在钱包中执行需要非常长的时间。为了减少等待时间,有两种解决方案。

解决方案 1:本地缓存

可以使用本地缓存来存储结果。一个例子是在 getburnreport 命令中完成,使用了 WalletCache 类,该类使用 Memcache/Redis 作为中间件。

初始请求仍然需要时间来执行。

解决方案 2:Gridcoinstats API(尚未准备就绪)

如果数据可用,使用 Gridcoinstast.eu 的 API 是一种更快的途径。

此功能尚不可用。

开发和测试

当添加新功能时,请确保为它添加一个 phpunit 测试用例。

测试用例在 /test 文件夹中。函数以 test 开头,例如 testGetBlocks()

确保在推送新代码时,/vendor/bin/phpunit 不失败。

需要修补的版本

当前的库在没有 netresearch/JSONMapper 中特定功能的情况下无法正常工作。这已在 问题 212 中描述。

直到原始仓库添加所需的功能,需要使用修补的版本。

可以通过在 composer.json 设置中添加以下内容来实现。

"repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/startailcoon/jsonmapper"
        }
],
"require": {
    "netresearch/jsonmapper": "dev-classMapFix"
}