coon-design / php-gridcoin
用于 Gridcoin 研究的 PHP RPC 调用器
Requires
- php: >=8
- ext-bcmath: *
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-xml: *
- coon-design/rate-limit: ^0.5.0
- curl/curl: ^2.5
- netresearch/jsonmapper: dev-classMapFix
- slim/psr7: ^1.6
- slim/slim: 4.*
Requires (Dev)
- phpmd/phpmd: ^2.13
- phpunit/phpunit: ~7.5 || ~8.0 || ~9.0 || ~10.0
- squizlabs/php_codesniffer: ~3.5
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"
}