howestsecandpriv / iotasigneddata
Howest Security & Privacy的Iota签名数据API的接口
Requires
- guzzlehttp/psr7: ^2.4
This package is not auto-updated.
Last update: 2023-10-24 14:09:42 UTC
README
IotaSignedData
包是一个Laravel包,允许将哈希写入IOTA区块链。该包使用Guzzle HTTP客户端与IOTA签名数据API交互。该包利用env()
函数从环境变量中获取IOTA签名数据API的URL和JWT令牌。
要求
- Laravel 7+
- PHP 7.2+
- Guzzle HTTP客户端
- 实现Web3团队、安全与隐私研究组、Howest定义的接口的IOTA签名数据API
安装
要安装此包,首先通过运行以下命令使用composer安装
composer require howestsecandpriv/iotasigneddata
配置
该包需要在.env文件中设置两个环境变量
IOTA_SIGNED_DATA_API_URL
:IOTA签名数据API的URL,应该以反斜杠结尾。IOTA_NODE_JWT_TOKEN
:用于验证API的JWT令牌。JWT令牌包含freelancer_id,API将其用作IOTA中的有效载荷索引
使用
该包提供了一个公共方法writeHash(string $hash, string $preImage = null): string
,它接受一个哈希和一个可选的前像。
$response = IotaSignedData::writeHash("7bf4ab29630fc6dfa187f8a6b68a1efa8e36e8f2a8904ec7b3460ebfae1d2cd2", "pre-image");
该方法首先检查是否提供了前像以及它是否与哈希匹配。如果提供了前像但不匹配哈希,将抛出异常。
然后,该方法使用Guzzle HTTP客户端向IOTA签名数据API发送带有提供的哈希和JWT令牌的头部信息的POST请求。如果请求成功,则返回响应体。如果请求失败,将抛出异常。
IOTA签名数据API创建一个由freelancer_id和哈希连接组成的签名前像。然后API对其进行签名。这样,可以保证只有自由职业者才能向API提交此内容(解释了为什么需要freelancer_id连接),并且只有API才能将其写入tangle(这就是签名部分)。
作者
Shane Deconinck (shane.deconinck@howest.be)
© Web3团队,安全与隐私研究组,Howest