Qstamp / Розробникам
Розробка з Qstamp

Встановлюйте SDK, засвідчуйте, перевіряйте.

Qstamp SDK є програмним забезпеченням з відкритим вихідним кодом за ліцензією Apache License 2.0 або ліцензією MIT. Він працює на Node 20 або новіших версіях і залежить лише від QCore, клієнтської бібліотеки Quantova для постквантового підпису.

GitHubВідкритий код

Вихідний код Qstamp SDK

Повний вихідний код, опублікована конструкція та історія випусків, відкриті для незалежної перевірки безпеки.

git clone https://github.com/Quantova/QStamp.git
npmv0.1.4

@quantovainc/qstamp

Інструмент командного рядка та бібліотека для Node 20 або новішої версії з однією залежністю, QCore, для постквантового підписання.

npm install @quantovainc/qstamp
QuantaПриклад

Шаблони контрактів

Відкритий смарт-контракт Quanta, смарт-контракт емітента і смарт-контракт ради. Перед розгортанням у промисловій експлуатації потрібен незалежний аудит третьою стороною.

git clone https://github.com/Quantova/Qstamp-Quanta-Smart-contract-example-.git
Тестова мережаQ-test-net-1

Кінцева точка та тестові одиниці

Публічна кінцева точка тестової мережі Quantova. Отримайте безкоштовні тестові одиниці TQTOV для оплати комісії за закріплення.

https://rpc-testnet.quantova.org
terminalcommand line
npm install @quantovainc/qstamp fingerprint files npx qstamp hash report.pdf ledger.csv stamp them in one transaction npx qstamp stamp report.pdf ledger.csv \ --seed-file ./signer.key --index 0 --kind financial_record verify a receipt against its file npx qstamp verify report.pdf.qstamp.json --file report.pdf recover an interrupted stamp npx qstamp complete qstamp-pending-1760000000000-a1b2c3d4.json
app.jsprogrammatic
const qstamp = require('@quantovainc/qstamp'); const digest = await qstamp.digestFile('report.pdf'); const [receipt] = await qstamp.stamp({ seed, index: 0, kind: 'financial_record', records: [{ digest }], }); const result = await qstamp.verify(receipt, { file: 'report.pdf', }); result.status · result.checks · result.endpoints
API

Функції та гарантії.

ФункціяПризначенняПоведінка
stamp(options)Закріплення до 1048576 записів однією транзакцією з видачею однієї квитанції на кожен записСід приймається лише як 32 байти, що підлягають стиранню, і стирається після підписання. Ліміт комісії застосовується до підписання.
verify(receipt, options)Перевірка квитанції щодо її вмісту та мережіНіколи не повертає результат дійсна без вмісту. Повертає результат невизначено, якщо до мережі неможливо звернутися.
complete(pending)Завершення формування квитанцій для поданого пакета після перериванняВідхиляє незавершені пакети, які не відповідають закріпленому криптографічному зобов'язанню.
digestFile, digestBytesЦифровий відбиток вмісту за допомогою SHA3 або SHA2 довжиною 256 бітПотокова обробка, тому підтримуються файли будь-якого розміру.
leafHash, tree, rootFromPath, commitmentПримітиви для незалежних сторін перевіркиТочна реалізація опублікованої конструкції.
validateReceiptСувора валідація схемиТочні ключі, канонічні кодування та обмежені значення.
Мережа

Параметри тестової мережі.

Назва ланцюга
Q-test-net-1
Хеш генезису
ca91e093bb8de33e90db52d7c89876597d14760703793ea7211929e73e613062
Контракт Qstamp
Q1D6TZFRL203P3DFAFVUPZUHGUCM4EWGH6063XNS42VA5235RNQWXS7FXEWX
Кінцева точка
https://rpc-testnet.quantova.org
Комісія за закріплення
0,005 TQTOV, незалежно від розміру пакета

Квитанції тестової мережі не мають доказової сили. Промислове використання здійснюватиметься в основній мережі Quantova після її запуску.

Незалежна перевірка

Перевірка без SDK.

Повторно обчисліть дайджест запису за алгоритмом, зазначеним у квитанції.

Обчисліть лист із 0x00, QSTAMP/LEAF/V1, ідентифікатора алгоритму, дайджесту та солі.

Повторно обчисліть корінь відповідно до RFC 9162, розділ 2.1.3.2.

Обчисліть криптографічне зобов'язання з 0x02, QSTAMP/ROOT/V1, генезису, контракту, підписанта, виду, розміру та кореня.

Переконайтеся, що транзакція є остаточною, підписана зазначеною адресою та містить криптографічне зобов'язання.

Переконайтеся, що офіційний контракт згенерував подію 5a110849 з підписантом, криптографічним зобов'язанням і видом.

Підтвердьте ідентифікатор блоку та час блоку.