
尽管事实上在哈布雷(Habré)上还
没有一篇关于IPFS的文章 。
我会立即澄清,我不是该领域的专家,但是我对这种技术表现出了不止一次的兴趣,但是尝试使用它常常会带来一些痛苦。 今天,我再次进行了实验,并得到了一些我想分享的结果。 简而言之,将描述安装IPFS和一些芯片的过程(一切都在ubuntu上完成,在我未尝试过的其他平台上完成)。
如果您错过了什么IPFS,请在此处进行详细介绍: habr.com/en/post/314768安装方式
出于实验的纯洁性,我建议立即将其安装在某些外部服务器上,因为我们将考虑在本地模式和远程模式下工作时会遇到的一些陷阱。 然后,如果需要的话,它不会被拆除很长时间,没有很多。出发
官方文件在
golang.org/dl上查看当前版本
注意:最好代表应该最经常使用的用户安装IPFS。 事实是,下面我们将考虑通过FUSE进行安装的选项,并且那里有些微妙之处。cd ~ curl -O https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz tar xvf go1.12.9.linux-amd64.tar.gz sudo chown -R root:root ./go sudo mv go /usr/local rm go1.12.9.linux-amd64.tar.gz
然后,您需要更新环境(此处有更多详细信息:
golang.org/doc/code.html#GOPATH )。
echo 'export GOPATH=$HOME/work' >> ~/.bashrc echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.bashrc source ~/.bashrc
检查go是否已安装
go version
安装IPFS
我最喜欢通过
ipfs-update进行安装的方法。
使用命令安装
go get -v -u github.com/ipfs/ipfs-update
之后,您可以执行以下命令:
ipfs更新版本 -查看所有可供下载的版本。
ipfs-update version-查看当前已安装的版本(直到我们安装了IPFS,否则将不会显示)。
ipfs-update安装最新 -安装最新版本的IPFS。 您可以从可用列表中分别指定任何所需的版本,而不是最新的版本。
安装ipfs
ipfs-update install latest
检查一下
ipfs --version
直接与安装总而言之,应有尽有。
IPFS启动
初始化
首先,您需要执行初始化。
ipfs init
作为响应,您将获得以下内容:
ipfs init initializing IPFS node at /home/USERNAME/.ipfs generating 2048-bit RSA keypair...done peer identity: QmeCWX1DD7HnXXXXXXXXXXXXXXXXXXXXXXXXxxx to get started, enter: ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
您可以运行建议的命令
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
结果 Hello and Welcome to IPFS! ██╗██████╗ ███████╗███████╗ ██║██╔══██╗██╔════╝██╔════╝ ██║██████╔╝█████╗ ███████╗ ██║██╔═══╝ ██╔══╝ ╚════██║ ██║██║ ██║ ███████║ ╚═╝╚═╝ ╚═╝ ╚══════╝ If you're seeing this, you have successfully installed IPFS and are now interfacing with the ipfs merkledag! ------------------------------------------------------- | Warning: | | This is alpha software. Use at your own discretion! | | Much is missing or lacking polish. There are bugs. | | Not yet secure. Read the security notes for more. | ------------------------------------------------------- Check out some of the other files in this directory: ./about ./help ./quick-start <-- usage examples ./readme <-- this file ./security-notes
在我看来,有趣的事情已经开始了。 在安装阶段,这些家伙已经开始使用自己的技术。 建议的哈希值QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv-不是专门为您生成的,而是缝入了发行版中的。 也就是说,在发行之前,他们准备了一个欢迎文本,将其倒入IPFS中并将地址添加到安装程序中。 我认为这很酷。 现在,不仅可以在本地查看此文件(更确切地说是整个文件夹),还可以在官方
ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv网关上进行查看。 同时,您可以确保该文件夹的内容没有任何更改,因为如果更改了,则哈希也将更改。
顺便说一下,在这种情况下,IPFS与版本控制服务器有一些相似之处。 如果您更改文件夹的源文件,然后再次将文件夹倒入IPFS,则它将收到一个新地址。 同时,旧文件夹不会像以前那样随处可见,并且可以在其以前的地址使用。直接启动
ipfs daemon
他们应该得到如下响应:
ipfs daemon Initializing daemon... go-ipfs version: 0.4.22- Repo version: 7 System version: amd64/linux Golang version: go1.12.7 Swarm listening on /ip4/xxxx/tcp/4001 Swarm listening on /ip4/127.0.0.1/tcp/4001 Swarm listening on /ip6/::1/tcp/4001 Swarm listening on /p2p-circuit Swarm announcing /ip4/127.0.0.1/tcp/4001 Swarm announcing /ip6/::1/tcp/4001 API server listening on /ip4/127.0.0.1/tcp/5001 WebUI: http://127.0.0.1:5001/webui Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080 Daemon is ready
打开互联网之门
请注意以下两行:
WebUI: http://127.0.0.1:5001/webui Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
现在,如果您在本地安装IPFS,那么您将在本地地址访问IPFS接口,并且所有内容都将可用(例如,
localhost :5001 / webui /)。 但是,默认情况下,当安装在外部服务器上时,网关将关闭Internet连接。 有两个网关:
- 在端口5001上管理admin webui( github )。
- 端口8080上的外部API(只读)。
到目前为止,您可以打开两个端口进行实验(5001和8080),但是,当然,在战斗服务器上,应使用防火墙关闭端口5001。 有4001个端口,需要其他端口才能找到您。 应该对外部请求开放。
打开〜/ .ipfs / config进行编辑,然后在其中找到以下几行:
"Addresses": { "Swarm": [ "/ip4/0.0.0.0/tcp/4001", "/ip6/::/tcp/4001" ], "Announce": [], "NoAnnounce": [], "API": "/ip4/127.0.0.1/tcp/5001", "Gateway": "/ip4/127.0.0.1/tcp/8080" }
将127.0.0.1更改为服务器的ip并保存文件,然后重新启动ipfs(停止运行命令Ctrl + C并再次运行)。
必须得到
... WebUI: http://ip__:5001/webui Gateway (readonly) server listening on /ip4/ip__/tcp/8080
现在,外部接口应该可用。
签出
http://__ip_:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
上面的自述文件应打开。
http://__ip_:5001/webui/
Web界面应打开。
如果webui适合您,则可以直接在其中更改IPFS设置,包括查看统计信息,但是下面我将直接通过config文件考虑配置选项,通常这并不重要。 最好记住一下配置的确切位置以及如何使用它,如果网络枪口无法正常工作,将更加困难。设置用于使用服务器的Web界面
这是第一个陷阱,大约花了三个小时。
如果您在外部服务器上安装了IPFS,但没有在本地安装或启动IPFS,那么当您在Web界面中访问/ webui时,应该看到连接错误:

我认为,事实是webui的工作方式非常含糊。 首先,他尝试连接到打开接口的服务器的API(当然,基于浏览器中的地址)。 如果在该处不起作用,则尝试连接到本地网关。 而且,如果您在本地运行IPFS,则您的webui可以正常工作,尽管您在外部服务器上打开了webui,但只有本地IPFS可以使用,而不是外部IPFS。 然后上传文件,但是由于某种原因,您不会像在外部服务器上那样看到它们...
而且,如果它不在本地运行,则会出现连接错误。 在我们的情况下,错误很可能是由于CORS引起的,这也由webui指出,建议添加配置。
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_ :5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
我刚刚注册了通配符
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
可以在同一〜/ .ipfs / config中找到所有添加的标头。 就我而言
"API": { "HTTPHeaders": { "Access-Control-Allow-Origin": [ "*" ] } },
我们重新启动ipfs并看到webui已成功连接(至少如上所述,如果您打开网关以接收来自外部的请求,则应该如此)。
现在,您可以通过Web界面直接上传文件夹和文件,以及创建自己的文件夹。
挂载FUSE文件系统
这是一个非常有趣的把戏。
我们不仅可以通过Web界面添加文件(以及文件夹),还可以直接在终端中添加文件,例如
ipfs add test -r added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test
最后一个哈希是根文件夹哈希。
使用此哈希,我们可以在任何ipfs节点(可以找到我们的节点并获取内容)上打开文件夹,可以在Web界面上的端口5001或8080上打开文件夹,也可以在本地通过ipfs打开文件夹。
ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt
但是您仍然可以像普通文件夹一样打开它。
让我们在根目录中创建两个文件夹,并将其授予我们的用户权限。
sudo mkdir /ipfs /ipns sudo chown USERNAME /ipfs /ipns
然后使用--mount标志重新启动ipfs
ipfs daemon --mount
您可以在其他位置创建文件夹并通过ipfs守护程序--mount --mount-ipfs / ipfs_path --mount-ipns / ipns_path指定它们的路径现在从此文件夹中读取内容有点不寻常。
ls -la /ipfs ls: reading directory '/ipfs': Operation not permitted total 0
也就是说,没有直接访问此文件夹的根目录。 但是,您可以知道哈希值,然后获取内容。
ls -la /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx total 0 -r--r--r-- 1 root root 10 Aug 31 07:03 test.txt
cat /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx/test.txt test test
此外,指定路径时,即使文件夹内的自动补全功能也可以使用。
就像我在上面说的那样,这种挂载有一些微妙之处:默认情况下,挂载的FUSE文件夹只能由当前用户访问(即使root无法从该文件夹读取,更不用说系统中的其他用户了)。 如果要使其他用户可以访问这些文件夹,则需要在配置中将“ FuseAllowOther”:false更改为“ FuseAllowOther”:true。 但这还不是全部。 如果以root用户身份运行IPFS,则一切正常。 而且如果代表普通用户(尽管是sudo),则会出现错误
mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
在这种情况下,您需要通过取消注释#user_allow_other行来修复/etc/fuse.conf。
之后,我们重新启动ipfs。
FUSE的已知问题
不止一次地发现问题,在安装后重新启动ipfs(或在其他情况下)后,安装点/ ipfs和/ ipns变得不可用。 无法访问它们,但是ls -la / ipfs显示了? 在权限列表中。
找到了这样的解决方案:
fusermount -z -u /ipfs fusermount -z -u /ipns
然后重新启动ipfs。
添加服务
当然,在终端中启动仅适用于主要测试。 在战斗模式下,守护程序应在系统启动时自动启动。
代表sudo创建文件/etc/systemd/system/ipfs.service并将其写入:
[Unit] Description=IPFS Daemon After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=simple ExecStart=/home/USERNAME/work/bin/ipfs daemon --mount User=USERNAME Restart=always [Install] WantedBy=multi-user.target
当然,USERNAME必须用您的用户替换(也许ipfs程序的完整路径会与您不同(您必须指定完整路径))。
我们激活服务。
sudo systemctl enable ipfs.service
我们开始服务。
sudo service ipfs start
检查服务状态。
sudo service ipfs status
为了实验的纯洁性,将来有可能重新启动服务器以验证ipfs是否成功自动启动。
添加我们知道的盛宴
考虑一下在外部服务器和本地服务器上都安装了IPFS节点的情况。 在外部服务器上,我们添加某种文件,并尝试通过CID通过IPFS在本地获取它。 会发生什么? 当然,本地服务器很可能对外部服务器一无所知,而只是通过“询问”所有可用的IPFS对等方(试图通过它来“了解”)来尝试通过CID查找文件。 那些反过来会问别人。 如此,直到找到该文件。 实际上,当我们尝试通过官方
ipfs.io网关获取文件时,
也会发生同样的事情。 如果幸运的话,几秒钟后即可找到该文件。 如果不是这样,则几分钟后将找不到它,这极大地影响了工作的舒适性。 但是我们知道该文件将首先出现在何处。 那么,为什么不立即告诉本地服务器“先看那里”呢? 显然,这可以做到。
1.转到远程服务器,然后在配置中查找〜/ .ipfs / config
"Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuxxxxxxxxxxxxxxxx",
2.我们执行sudo service ipfs status并在其中查找Swarm条目,例如:
Swarm announcing /ip4/ip__/tcp/4001
3.从中,我们添加“ / ip4 / ip_your_server / tcp / 4001 / ipfs / $ PeerID”形式的通用地址。
4.为了提高可靠性,我们将通过本地Webui尝试将此地址添加到对等方。

5.如果一切正常,请打开本地配置〜/ .ipfs / config,在其中找到“ Bootstrap”:[...
并将接收到的地址首先添加到数组中。
重新启动IPFS。
现在,将文件添加到外部服务器,然后尝试在本地服务器上请求它。 必须飞得快。
但是此功能仍然不稳定。 据我了解,即使我们在Bootstrap中指定对等地址,在工作过程中ipfs也会更改与对等方的活动连接列表。 无论如何,这里都在讨论这个问题,并希望指出是否有恒定的对等体,似乎
应该为ipfs@5.0+添加一些功能。
可以在webui和终端中查看当前对等方的列表。
ipfs swarm peers
无论在那里,您都可以手动添加盛宴。
ipfs swarm connect "/ip4/ip__/tcp/4001/ipfs/$PeerID"
在改进此功能之前,您可以编写工具来检查与所需对等方的连接,如果没有,则添加连接。
推论
在已经熟悉IPFS的人们中,有支持IPFS和反对IPFS的论点。 原则上,前天的
讨论促使我再次研究IPFS。 关于上述讨论:我不能说我强烈反对上面表达的某些论点(我仅同意一个半程序员使用IPFS的事实)。 总的来说,他们两个都以自己的方式正确(尤其是
对支票的评论会让您思考)。 但是,如果您抛弃道德和法律评估,谁会对此技术进行技术评估? 就我个人而言,我有一种内心的感觉,“这肯定是必要的,它具有一定的前景”。 但是,为什么呢,却没有明确的措辞。 就像您查看现有的集中式工具一样,它们在很多方面都处于领先地位(稳定性,速度,可管理性等)。 不过,我有一个想法,这似乎是有道理的,如果没有这种分散的系统,就很难实现。 当然,我确实动了脑子,但我会这样表达:需要改变在Internet上传播信息的原理。
我会解释。 如果您这样认为,那么现在我们的信息将根据“我希望将信息转移给的人进行保护”的原则进行传播,不会将其丢失或接收给不希望收到的人。 例如,很容易考虑各种邮件服务,云存储等。 到底我们有什么? 在HabréHub上,
信息安全处于第一线,几乎每天我们都会收到有关另一起全球泄漏的消息。 原则上,所有最有趣的内容已在<irony>精彩的</ irony>文章中列出,
夏天快结束了。 几乎没有数据泄漏 。 也就是说,主要的互联网巨头正在变得越来越大,他们正在积累越来越多的信息,而这种泄漏是一种信息原子爆炸。 这从未发生过,再次出现。 同时,尽管许多人都知道存在风险,但他们将继续信任第三方公司的数据。 首先,没有太多选择,其次,他们承诺已经修补了所有漏洞,而且这种情况将再也不会发生。
我看到什么选择? 在我看来,数据最初应该是公开分发的。 但是在这种情况下,开放并不意味着所有内容都应该易于阅读。 我说的是存储和分发的开放性,而不是阅读的全部开放性。 我认为信息应该使用公钥分发。 毕竟,公钥/私钥的原理已经很古老了,几乎就像互联网一样。 如果信息不是机密信息且设计范围广泛,则立即将其与公钥一起布置(但仍采用加密形式,只有任何人都可以使用现有密钥对其进行解密)。 如果不是,则将其布置为没有公共密钥,并且密钥本身将传输给必须访问此信息的密钥。 同时,需要阅读的人应该只有一把钥匙,而在何处获取此信息时,它不应真正悬停-他只是将其从网络中拉出(这是分配给内容而不是地址的新原则)。
因此,对于大规模攻击,攻击者将需要获得大量的私钥,而且他们不可能在一处做到这一点。 正如我所看到的,此任务比破解特定服务更加困难。
在这里,另一个问题解决了:作者身份的确认。 现在,在Internet上您可以找到许多由我们的朋友撰写的报价。 但是,他们在哪里保证写了它们? 现在,如果每个这样的记录都带有数字签名,那将更加简单。 无论这些信息位于何处,主要是签名,显然很难伪造。
这就是有趣的地方:IPFS已经带有加密工具(毕竟,它是基于区块链技术构建的)。 私钥立即在配置中指定。
"Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
+ / NDI51jA0MRzpBviM3o / C / Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m + JoEplHjtc4KS5 "Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
7LMS7jKpwJNJBiFAa / Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj / Fb的+ GJMiciJUZaAjgHoaZrrf2b / Eii3z0i + QIVG7OypXT3Z9JUS60 "Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
Zijgq27oLyxKNr9T7 "Identity": { "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx", "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5 pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60 KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7 2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................
我不是安全专家,我无法确切知道如何正确使用它,但是在我看来,这些密钥是在IPFS节点之间的交换级别使用的。 还有
js-ipfs和
orbit.chat可以在其上
运行的示例项目
orbit-db 。 也就是说,从理论上讲,每个设备(不仅是移动设备)都可以轻松地配备自己的加密解密机。 在这种情况下,只剩下每个人都要维护自己的私钥,并且每个人都应对自己的安全负责,而不是在某些超级受欢迎的互联网巨头中成为另一个人为因素的人质。