howestsecandpriv/iotasigneddata

Howest Security & Privacy的Iota签名数据API的接口

0.2 2023-01-17 10:25 UTC

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