本文档是一个黑客马拉松指南,指导读者使用NanoShutter的加密/解密API构建一个石头剪刀布游戏。该游戏利用类似Shutter的阈值加密来确保公平性,提供了一种体验区块链密码学的有趣方式。此外,还提供了一些其他的黑客松想法,以及成功完成黑客松的提示。
欢迎来到本次黑客松指南!本指南将引导你构建一个利用 NanoShutter 的加密/解密 API 的剪刀石头布游戏。该游戏利用类似于 Shutter 的门限加密来确保公平性,以一种引人入胜的方式体验区块链密码学。
NanoShutter 提供了你可以直接使用的主机托管的 API 端点。这些包括:
https://nanoshutter.staging.shutter.network/encrypt/with_time
https://nanoshutter.staging.shutter.network/decrypt/with_time
你可以使用这些端点进行测试和实验,而无需托管自己的服务器。
index.html
的新 HTML 文件。将提供的剪刀石头布游戏的 HTML 代码复制并粘贴到此文件中。文件结构:
rock-paper-scissors/
├── index.html
index.html
文件包含游戏的整个 UI,包括:
在提供的 HTML 代码的 JavaScript 部分中,我们使用 axios
向 NanoShutter API 发送 HTTP 请求以进行加密和解密。
加密示例:
const response = await axios.post(`${apiBaseUrl}/encrypt/with_time`, {
cypher_text: move,
timestamp: encryptionTimestamp
});
这使用给定的 encryptionTimestamp
(从当前时间起 20 秒)加密所选的移动。
解密示例:
const response = await axios.post(`${apiBaseUrl}/decrypt/with_time`, {
encrypted_msg: encryptedData.player1,
timestamp: encryptionTimestamp
});
这在 20 秒过去后解密移动。
index.html
文件。如果你想设置和运行你自己的 NanoShutter API 版本,而不是使用提供的端点,请按照以下步骤操作:
首先,从 GitHub 克隆 NanoShutter 存储库:
git clone https://github.com/shutter-network/nanoshutter.git
导航到克隆的文件夹
cd nanoshutter/rock-paper-scissors-demo
如果你正在运行你自己的 API 版本,请更改 HTML 代码中的 apiBaseUrl
以指向你的本地服务器:
const apiBaseUrl = 'http://localhost:5000';
这将确保所有加密和解密请求都定向到你本地托管的 API。
NanoShutter 是在各种黑客松场景中试验时间锁定加密的理想工具。以下是一些想法,可以在你的下一次黑客松中给你带来灵感:
这些黑客松想法仅仅是起点。随意修改、组合或扩展它们,以使用 NanoShutter 创建独特而有影响力的项目!
通过遵循本指南,你应该能够创建一个功能齐全的“Shutterized 剪刀石头布”游戏,该游戏使用密码学原语来确保公平竞争。这是对门限密码学以及它如何在去中心化应用程序中使用的很好的介绍。
我们迫不及待想看看你构建的东西!如果你有任何问题,请随时联系 NanoShutter 社区以获得支持。
祝你编程愉快!
- 原文链接: github.com/shutter-netwo...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!