paint-brush
如何建造星际照相亭经过@jenksguo
947 讀數
947 讀數

如何建造星际照相亭

经过 Jenks Guo7m2023/04/30
Read on Terminal Reader

太長; 讀書

了解如何将照相亭集成到 IPFS 并使用 web3.storage 让您的自拍在星际间穿行。照相亭的主要部件有:数码相机一台、灯若干、触摸屏电脑一台、控制相机拍照的一些软件。了解如何使用轻量级 node.js 应用程序制作名为 Sparkbooth 的 photo Booth 软件。
featured image - 如何建造星际照相亭
Jenks Guo HackerNoon profile picture
0-item
1-item
2-item

了解如何将照相亭集成到 IPFS 并使用 web3.storage 让您的自拍在星际间穿行。


在 Web Summit 2022 期间,Filecoin 活动和创意团队在大会上设立了一个令人惊叹的展台,吸引了超过 3500 名参观者,他们希望更多地了解 Web3、星际文件系统 (IPFS) 和 Filecoin 网络的分布式存储解决方案。

Filecoin 展台在 2022 年葡萄牙里斯本 Web 峰会上的照片


Filecoin 提供了广泛的解决方案,用于通过 IPFS 协议在 Web3 上存储和持久化文件。最受欢迎和易于使用的一种是 web3.Storage,这是一种面向开发人员的“对IPFS和 Filecoin 的单一 API 调用”解决方案。


IPFS 是一种 Web 协议,允许在对等网络中共享文件并在分布式计算机网络中共享数据。 Filecoin创建了一个开源协议,使存储市场能够以很少的成本将文件长期保存在 IPFS 上。该解决方案解决了 Web3 中的存储问题,并升级了我们所知的互联网,以应对行星际通信等挑战。


星际交流必须包括自拍!了解如何使用轻量级 node.js 应用程序制作名为 Sparkbooth 的照相亭软件,以连接到 web3.storage 并将您的自拍上传到 IPFS。

它是如何工作的?

照相亭的主要部分是:一台数码相机,一些灯,一台带触摸屏的电脑,一些控制相机拍照并能够将照片上传到 IPFS 和 Filecoin 网络的软件。

解释照相亭操作的图表

事件流如下所示:


  1. 触摸屏接收用户命令拍照


  2. Photo Booth 软件(称为 Sparkbooth)将与相机对话以采取行动


  3. Sparkbooth 将照片本地存储在计算机上


  4. Sparkbooth 询问用户是否要发送到服务器(通过 web3.storage)


  5. Sparkbooth 在 API 调用中将照片、用户名、密码和成功消息发送到 * fil-photo-booth-上传器*自定义nodejs应用程序


  6. fil-photobooth-uploader 应用程序将:

    1. 验证用户名和密码

    2. 将照片的格式更改为什么 web3.storage接受

    3. 从系统中检索 API 令牌/密钥并发送到 __ web3。 __贮存

    4. w__ eb3.storage __ 将照片发送到 IPFS 网络并在 Filecoin 上备份

    5. w__ eb3.storage __ 将 IPFS 内容 ID (CID) 返回给fil-photo-booth-上传器

    6. fil-photo-booth-上传器将通过构建 CID url 的 http 版本 web3.storage IPFS网关

    7. fil-photo-booth-uploader 将成功消息返回给 Sparkbooth 7


  7. Sparkbooth 收到一条成功消息:“您的照片已通过以下方式发送到 IPFS web3.storage . :-)”以及照片的 URL


  8. Sparkbooth 在屏幕上显示生成的二维码


外观?它就像一个普通的照相亭:

IPFS CID url 的示例:

https://bafybeiei7zadrztflc6krunhvqr3umzre7xjxfzvmyjs2ob2w7yykq63ea.ipfs.w3s.link/20221104172648.jpg

一个例子:

包含自拍 CID 的二维码


整个流程如下所示:

将自拍上传到 IPFS

要了解有关 IPFS 和 CID 的更多信息,请访问原型学校.

分步指南

先决条件

完成本教程可能需要做一些事情:

  • 📸 相机 - 任何现代佳能
  • 💻 电脑 - 任何带触摸屏的一体化台式机或带触摸屏的笔记本电脑
  • 👨🏻‍💻 Photo Booth 软件 - Sparkbooth 7
  • 🤖 一个应用服务器——为了方便,我正在使用 Heroku
  • 📦 启用 IPFS 的产品 - 一个 web3.storage 帐户
  • 🌎 互联网连接 - 一种与 WWW 有线或无线 (wifi) 交谈的方式\

第 1 步,Web3.Storage 设置

  1. 创建一个 web3.storage通过您的帐户 Github帐户或电子邮件

  1. 转到帐户 > API 令牌

  1. 创建一个新的 API 令牌,将其命名为您喜欢的任何名称(例如 Filecoin Web Summit 2022)

  1. 使用复制按钮复制 API 密钥

  1. 保存以备后用 您需要将其作为环境变量放入 fil-photo-booth-uploader 应用程序中

第二步:nodejs应用部署

为了让 Sparkbooth 7 和 web3.storage 顺利对话,我们需要一些帮助来翻译他们的语言。 nodejs 应用程序将帮助我们实现这一目标。它需要托管在服务器上,我们正在使用 Heroku(如果您知道 Web3 本地托管方式,请私信我。我很乐意尝试)。


  1. 首先去 github.com (如果你没有一个新帐户,请注册一个)

  1. 参观Filecoin Photo Booth 上传器然后点击分叉。这将允许您将源代码复制到您自己的帐户或存储库,并允许您将其连接到 Heroku。

  1. 注册一个 Heroku 帐户. Heroku 就像 AWS,一个集中的开发者平台,几乎免费帮助运行应用程序或服务器。

  1. 创建一个新应用程序并将事件名称放入其中。

  1. 我们可能需要为每个活动开发一个新的应用程序。

  1. 在“部署方法”下,选择 GitHub,然后登录您的 GitHub 帐户。授权 Heroku 将代码拉入自身以构建应用程序并运行服务器。

  1. 在“连接到 GitHub”下,搜索您刚刚分叉的存储库名称(例如 fil-photo),然后连接代码存储库。

  1. 保留所有设置并单击“部署分支”以开始第一个构建。 Heroku 足够聪明,能够识别应用程序类型。下一步:构建并部署它。

  1. 但是,在服务器开始工作之前,我们需要输入用户名、密码和 web3.storage服务器环境中的 API 令牌。 Heroku 可以安全地访问它,而无需将它们暴露在互联网上。转到“设置”,然后“配置变量”。

  1. 放入以下配置,用密码、用户名和 web3.storage api令牌分别。名称必须与上面完全相同。

  1. 该应用程序现在应该正在运行!您可以转到“设置”下的“域”找到稍后放入 sparkbooth 7 的 URL。

第 3 步:Sparkbooth 7 设置

最后一步是准备照相亭笔记本电脑上的软件,以便与我们的自定义 nodejs 应用程序对话以完成设置流程。 \

  1. 前往Sparkbooth.com .下载火花展台 7单反, 支付牌照费或使用试用版。

  1. 打开 Sparkbooth 并确认您的购买。

  1. 当您打开应用程序时,它会最大化,但您可以按“ESC”退出。转到左上角的设置:

  1. 配置“发送到帐户”,然后输入您要使用的用户名和密码。 “服务 URL”需要是 Heroku 应用程序地址 + “/upload-w3s”。 (例如 http://fil-photo-booth-uploader.herokuapp.com:443/upload-w3s)

  1. 您可以使用测试按钮测试连接。这将导致一条失败消息,但 API 调用仍将通过 Heroku 应用程序并将测试照片放入您的web3.storage帐户。您可以在您的 web3.storage 帐户中查看测试图像。如果你能看到“phot booth test”照片,就说明设置成功了!点击这里去检查。

w3up 测试版即将推出

此应用程序于 2022 年构建,使用现有的 web3.storage API。在撰写本文时,web3.storage 提供了新的 w3up API 测试版,它包括用于多个框架的前端 Web 组件.这将使开始编写使用 IPFS 的应用程序变得更加容易。

一些改进建议

该应用程序并不完美!有几个地方可以改进:


  1. 安全

尽管这只是一个炫耀的噱头,但 nodejs 应用程序的安全性并不理想。在应用程序逻辑中验证密码和用户名不是首选。我认为我们应该将应用程序置于防火墙或 API 网关之后,以便在将调用传递给我们的应用程序之前验证标头中的授权。


  1. 经验

Sparkbooth 7 很棒,但 UI 似乎确实很有限。如果我们可以对此进行更多自定义,那就太好了。也许开源照相亭软件可以帮助我们实现这一目标?


  1. 最近的照片库

潜在地,我们可以使用单独的计算机向访问者显示最新的照片。他们可以选择要通过电子邮件发送给自己的照片、再次显示二维码或在社交媒体上分享。这将涉及为 fil-photo-booth-uploader 构建一个前端,这对于前端开发人员来说可能是一个非常酷的项目。


  1. 使用去中心化的应用程序后端。也许像FluenceIPVM这样的人能够提供帮助。

结论

在为期三天的网络峰会期间,Filecoin 照相亭的正常运行时间为 99%,并且由于会议上的互联网连接问题而中断了 1%。照相馆总共向 Filecoin Network 发布了 934 张照片。多亏了 web3.storage 非常方便的服务,这几乎是一千张准备好在星际旅行的自拍!

照相亭也很有名。第三天,CNN的记者也采访了摊位,(是的,摊位越来越有名了……不是我)。


CNN 记者在葡萄牙里斯本网络峰会上采访 Filecoin Photo Booth


请随意使用本指南为您的活动、聚会、聚会、聚会或只是为了好玩而构建您自己的星际照相亭。


Filecoin 网络现在有 16EiB 的存储容量,上面已经存储了超过 300PiB 的数据。有很多方法可以贡献或使用这个项目。了解有关参与的更多信息这里.