黑客马拉松指南:构建一个Shutter化的石头剪刀布游戏

本文档是一个黑客马拉松指南,指导读者使用NanoShutter的加密/解密API构建一个石头剪刀布游戏。该游戏利用类似Shutter的阈值加密来确保公平性,提供了一种体验区块链密码学的有趣方式。此外,还提供了一些其他的黑客松想法,以及成功完成黑客松的提示。

黑客松指南:构建一个 Shutterized 剪刀石头布游戏

介绍

欢迎来到本次黑客松指南!本指南将引导你构建一个利用 NanoShutter 的加密/解密 API 的剪刀石头布游戏。该游戏利用类似于 Shutter 的门限加密来确保公平性,以一种引人入胜的方式体验区块链密码学。

ezgif-6-1044641a13

你将学到什么:

  • 如何使用 NanoShutter API 进行基于时间的加密和解密。
  • 使用 JavaScript 和 HTML 构建一个 Web 应用程序,以实现一个简单的双人游戏。
  • 了解加密技术在去中心化、透明化环境中的应用。

准备工作

  • HTML、CSS 和 JavaScript 的基本知识。
  • 熟悉 REST API 以及发送 HTTP 请求。
  • 安装 Node.js 和 npm (如果需要本地开发)。
  • 密码学概念的基本理解会有帮助,但不是必须的。

开始入门

1. 使用我们提供的 API

NanoShutter 提供了你可以直接使用的主机托管的 API 端点。这些包括:

  • 加密端点 (基于时间的访问):
    • https://nanoshutter.staging.shutter.network/encrypt/with_time
  • 解密端点 (基于时间的访问):
    • https://nanoshutter.staging.shutter.network/decrypt/with_time

你可以使用这些端点进行测试和实验,而无需托管自己的服务器。

2. 设置你的项目

  • 创建一个新文件夹,并在你的代码编辑器中打开它。
  • 在此文件夹中,创建一个名为 index.html 的新 HTML 文件。将提供的剪刀石头布游戏的 HTML 代码复制并粘贴到此文件中。

文件结构:

rock-paper-scissors/
  ├── index.html

3. HTML 概述

index.html 文件包含游戏的整个 UI,包括:

  • 两个玩家部分,玩家可以在其中选择他们的动作。
  • 每个玩家提交其动作的按钮。
  • 用于显示加密动作、解密动作和游戏结果的部分。
  • 一个“开始新游戏”按钮来重置游戏。

4. 游戏的主要功能

  • 玩家互动:每个玩家可以选择他们的动作(石头、剪刀、布)并提交它。
  • 加密/解密:每个动作都使用一个时间戳进行加密,该时间戳设置为未来 20 秒。解密在 20 秒过去后发生。
  • 游戏逻辑:在两个动作都解密后,游戏评估获胜者并显示结果。

运行游戏的分步指南

步骤 1:集成 NanoShutter API

在提供的 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 秒过去后解密移动。

步骤 2:运行游戏

  1. 在浏览器中打开 index.html 文件
  2. 玩家 1 和玩家 2:每个玩家选择他们的动作并单击“提交动作”按钮。
  3. 等待动作被解密:游戏等待直到解密时间戳以显示玩家的动作。
  4. 查看结果:一旦两个动作都被解密,游戏结果(哪个玩家获胜)将被显示。

步骤 3:开始新游戏

  • 点击“开始新游戏”按钮来重置游戏。

运行你自己的 API 的详细指南

如果你想设置和运行你自己的 NanoShutter API 版本,而不是使用提供的端点,请按照以下步骤操作:

1. 克隆存储库

首先,从 GitHub 克隆 NanoShutter 存储库:

git clone https://github.com/shutter-network/nanoshutter.git

2. 安装依赖项

导航到克隆的文件夹

cd nanoshutter/rock-paper-scissors-demo

3. 运行 API 服务器,或使用预先部署的服务器。

4. 更新 HTML 文件以使用你的本地 API

如果你正在运行你自己的 API 版本,请更改 HTML 代码中的 apiBaseUrl 以指向你的本地服务器:

const apiBaseUrl = 'http://localhost:5000';

这将确保所有加密和解密请求都定向到你本地托管的 API。

其他黑客松想法

NanoShutter 是在各种黑客松场景中试验时间锁定加密的理想工具。以下是一些想法,可以在你的下一次黑客松中给你带来灵感:

1. Shutterized 多人游戏

  • 构建像剪刀石头布这样的游戏,玩家提交他们的动作并使用 NanoShutter 同时解密它们,以确保公平性。

2. 密封投标拍卖

  • 创建一个去中心化的拍卖,其中投标被加密,并且仅在特定时间之后才显示,使用 NanoShutter API 进行透明和公平的投标。

3. DApp 的抢先交易保护

  • 将 NanoShutter 集成到去中心化交易所 (DEX) 中,以通过在提交执行之前加密交易来启用抢先交易保护。

4. 薪资谈判工具

  • 开发一种以隐私为中心的谈判工具,允许个人提交加密的薪资报价,这些报价在双方都承诺后才会显示,从而确保透明度和公平性。

5. 盲投应用程序

  • 构建一个简单的投票应用程序,其中投票在投票期结束之前被加密,从而在去中心化环境中实现保护隐私的决策。

6. Token 门控内容发布

  • 使用 NanoShutter 创建一个平台,仅在特定时间之后或满足条件时发布高级内容(例如,音乐、艺术),从而实现定时的独家访问。

7. 盲筹款活动

  • 创建一个慈善捐款平台,其中捐款金额被加密,并且仅在活动结束后才显示,从而防止策略性捐款并促进公平性。

8. 加密支持的问答游戏

  • 设计一个问答游戏,其中问题和答案被加密,并且参与者在问题关闭后同时显示他们的答案,从而保持公平性和趣味性。

这些黑客松想法仅仅是起点。随意修改、组合或扩展它们,以使用 NanoShutter 创建独特而有影响力的项目!

黑客松成功的技巧

  • 了解时机:确保你的加密和解密时间戳匹配,以避免解密失败。
  • 调试:使用浏览器控制台来检查加密/解密期间的错误。
  • 协作:使用版本控制(例如,GitHub)与队友有效协作。
  • 扩展游戏:你还可以考虑扩展游戏以添加新功能,例如玩家身份验证或将游戏历史记录存储在链上。

结论

通过遵循本指南,你应该能够创建一个功能齐全的“Shutterized 剪刀石头布”游戏,该游戏使用密码学原语来确保公平竞争。这是对门限密码学以及它如何在去中心化应用程序中使用的很好的介绍。

我们迫不及待想看看你构建的东西!如果你有任何问题,请随时联系 NanoShutter 社区以获得支持。

祝你编程愉快!

  • 原文链接: github.com/shutter-netwo...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
shutter-network
shutter-network
江湖只有他的大名,没有他的介绍。