官方:Fil动态更新每周总结;IPFS周刊#140;Fil Newsletter#20;在浏览器中实现IPFS连接的指引(教程)
Filecoin动态更新每周总结
欢迎来到Filecoin动态更新每周总结!👏
Filecoin 是一个去中心化的、强大的人类信息基础。它通过网络协议,将云存储变成了算法市场。如果您想参与其中的活动,可以点击下面的一些链接🔗。以下是本周的一些亮点🔥:
生态
点击此处链接来观看来自协议实验室的ZX在由ETHGlobal举办的HackMoney2021黑客松中的演讲——第一思维原理:金融和Filecoin的历史缘来:https://www.youtube.com/watch?v=alOkQmxKpY0
由StarlingLab推出StarlingFramework旨在保存人类历史信息,通过其“捕捉”功能,可以将Filecoin + IPFS软硬件技术联合起来,帮助将图片从相机到数字平台的过程中直接创建链上托管。详情请看:https://filecoin.io/blog/posts/case-study-starling-lab/
点击此处参与申请“HackMoney”黑客松——一场为期30天的线上黑客松,致力于创建基于IPFS、Filecoin和Libp2p去中心化的金融应用, 注册链接:https://defi.ethglobal.co/
6月21日,IPFS和Filecoin将在IFIP举行有关互联网去中心化的1日研讨会活动,欢迎点击此链接了解详情:https://networking.ifip.org/2021/workshops/di2f-decentralising-the-internet-with-ipfs-and-filecoin/ 注册参与:https://t.co/40GLZiaLaf?amp=1
点击此处回顾Slingshot2.3阶段的闭幕仪式:https://www.pscp.tv/w/1eaJbnQalBdJX
最近PL的生态负责人Colin参与了David Nage的Base Layer播客采访,讲述了有关Web3.0的开发与应用,点击该链接了解采访内容:https://podcasts.apple.com/us/podcast/base-layer-episode-211-colin-evran-from-protocol-labs/id1445373535?i=1000524502274
——————————————
IPFS 周刊 #140
欢迎来到IPFS周刊#140!
Starling Lab实验室:为人类的数据建立信任
Starling Lab实验室的发起标志着持续建造人类最重要的数字信息所需的信任支撑框架的目标。在与南加州大学 Shoah基金会及斯坦福大学的协作中,Starling Lab实验室正部署相关的技术和方法,让去中心化互联网成为可行的社会影响平台。Starling Lab是世界上首个专门通过去中心化工具去提升人类权益的去中心化工具,Protocol Labs实验室和Filecoin基金会贡献了200万美元的资金用于去中心化网络的建设。
Starling Lab实验室解决方案的核心是Starling框架,这是一个在IPFS和Filecoin上搭建的开源原型,最佳实践和案例研究集合,帮助减少数字媒体的信息不确定性问题。Starling框架主要针对捕获, 存储,和验证信息的基本需要来保护这些信息的完整性。要了解更多关于Starling Lab实验室的信息,可以阅读这里(https://filecoin.io/blog/posts/starling-lab-establishing-trust-for-humanity-s-data/)。
回顾Web3周末
有什么方法比一个黑客松周末更能深入探索Web3的世界?ETHGlobal的参与者就是这么想的,所以我们在5月份的最后一个周末参与Web3周末一起活动了。(https://web3.ethglobal.co/).
这个持续3天的活动以为期1天的峰会拉开了帷幕,它将生态中的专家带到了一起,以鼓励和启发建造者们探索去中心化技术的边界。在这个周末里,我们提供了总额为2万美元的Filecoin(Fil)奖池,它会平均分配在活动期间提交的基于(或配合)IPFS和Filecoin的作品上。任何基于生态系统工具(如Textile, Pinata, Fleek, Ceramic, Fission, Livepeer等)之上搭建的作品获得了一个奖项——总共有65名决赛者!阅读这篇文章(https://blog.ipfs.io/2021-06-08-web3-weekend/) 以重温活动,里面涵盖了各项挑战题目和决赛者,以及Protocol Labs实验室在该活动期间的演讲和工作坊。
IPFS的新成果
Snapshot Labs实验室(https://snapshot.org/#/) 正通过让用户免费塑造公司的项目决定,来用IPFS变革去中心化治理的世界,此处阅读Decrypt的文章。(https://decrypt.co/resources/what-is-snapshot-the-decentralized-voting-system)
Berty Alpha(https://berty.tech/)是隐私权优先的信息APP,它在IPFS和libp2p上搭建,现在已经在iOS上可用了!加入他们的Discord频道(https://discord.com/invite/mVfsEUmgSf)以获得下载alpha测试版所需的相关信息。
XSL Labs实验室(https://www.xsl-labs.io/en/) 最近发布了一个新的IPFS教育视频。在这里观看(https://www.youtube.com/watch?v=94HH5D23WWI).
对在浏览器中使用js-ipfs有问题吗?查看这篇文章(https://blog.ipfs.io/2021-06-10-guide-to-ipfs-connectivity-in-browsers/).
生态周边 🌏
HackMoney(https://defi.ethglobal.co/)是一个为期三周(6月18日到7月9日)的黑客松活动, 旨在搭建未来金融世界。这里有超过1000名志同道合的工程师\设计师和创造者,欢迎大家的加入。
Gemini最近发表了一篇深度文章,讨论由开发者打造并为开发者服务的分布式工作协议点击这里阅读(https://www.gemini.com/cryptopedia/distributed-work-protocols-web3-lpt-fil-grt)。
与IFIP Networking开展的DI2F workshop(工作坊)将在6月21日(下周一)开始,它紧凑的节目包括了令人激动的论文展示\演示\摘要\手把手教程和邀请嘉宾演讲!在 这里(https://networking.ifip.org/2021/workshops/di2f-decentralising-the-internet-with-ipfs-and-filecoin) 可以获得更多信息,而在这个链接(https://networking.ifip.org/2021/registration)可以注册。
Request Network最近宣布了与Chainlink达成的合作关系,以支持使用加密货币来支付法币计划的付款单。了解更多(https://twitter.com/RequestNetwork/status/1402639820984360963?s=20)
总是想在metaverse的世界里创建自己的时装店吗?Decentraland最近介绍了其服装编辑器。点击这里查看!(https://decentraland.org/blog/announcements/introducing-wearables-editor/)。
Infura Transactions (ITX) 现在进入私下的Beta测试阶段, 你可以注册试用(https://twitter.com/infura_io/status/1397229187379965953?s=20)!
下一场的IPFS meetup见面会活动是在6月29日周五,9am PT/5pm UTC。到这里注册,参与一系列闪电对话(https://www.meetup.com/en-AU/San-Francisco-IPFS/events/cbjsgsyccjbdc/)!
欢迎来到 “互联网计算机每周事”的这一集(https://soundcloud.com/arthurfalls/the-decentralised-web-on-fleek-mixdown#t=0:00) 来听一下Fleek讨论去中心化前端服务架设事宜。
想帮助搭建新的互联网吗
后端/API工程师(https://boards.greenhouse.io/textileio/jobs/4017981004): 作为一名后端/API工程师,你需要研究和贡献到产品视野中,并帮助定义多个产品的路线图。你将会在Textile Hub(https://github.com/textileio/textile)上进行搭建和维护, 并搭建新的服务和系统用于与包括以下项目在内的区块链网络进行整合:Threads(https://github.com/textileio/go-threads), Buckets(https://github.com/textileio/go-buckets), Hub(https://github.com/textileio/textile), 和 Powergate(https://github.com/textileio/powergate). 这个职位是寻找具有踏实编码经验和引领新特性能力的人。Textile, 远程职位。
全栈工程师(https://boards.greenhouse.io/textileio/jobs/4017984004): 这个职位希望找到有踏实编码基础并喜欢体验\设计和了解新事物的人。我们期待尽快招到这个人。这个职位的人选需要能够快速规划和搭建新型的Web网页应用,并与API(应用程序编程接口)和后端服务打交道。Textile, 远程职位.
高级后端工程师(https://pinata.cloud/careers#2): Pinata正寻求一名精通NodeJS的工程师,帮助我们搭建未来的平台。作为一名专门的后端工程师,你会与我们的首席技术官和工程团队一起,搭建能够加速我们吸引力的产品和特性。他们需要一个对基于NodeJS的API(应用程序编程接口)及关系型数据库有经验的人。如果对文件存储技术有经验那就是一个很大的加分项了。Pinata, 远程职位。
DevOps(https://pinata.cloud/careers#1): Pinata正寻找有DevOps背景的人员,以确保我们未来扩展过程中相关事项的流畅运作。作为首位专门的DevOps工程师,你将会在Pinata设计和搭建世界级的DevOps流水线的过程中扮演重要角色。他们需要有人熟悉搭建监控基础设施和帮助自动化部署更新的相关系统。Pinata, 远程职位。
多个岗位开放(https://jobs.lever.co/protocol): Protocol Labs实验室更新了以下领域的岗位招聘信息:行政, 商业拓展, 业务运作, 对外交流, 社区, 开发, 财务, 法律, 人才, 产品, 项目管理,研究和安全。Protocol Labs, Filecoin, IPFS, 远程职位.
软件工程师(https://jobs.lever.co/protocol): 寻找在密码学\系统\分布式系统\点对点网络上有专门经验的资深软件工程师,助力塑造下一代的网络协议。Filecoin, IPFS, libp2p, 远程职位。
想每个周二在邮箱中收到IPFS的周报吗?点击此处注册。(https://ipfs.us4.list-manage.com/subscribe?u=25473244c7d18b897f5a1ff6b&id=cad54b2230)
——————————————
Filecoin Newsletter #20
欢迎来到第20期Filecoin Newsletter!
创建
HackMoney将在6月18日本周五启动!
HackMoney(https://defi.ethglobal.co)将于6月18日至7月9日举办,是为期三周、旨在建设金融未来的黑客松活动。赶快来加入这个汇集了1000多名志同道合的工程师、设计师和创造者的精彩活动吧!该活动将会是一个打造黑客松新产品/协议、通过峰会和研讨会探索学习以及在此过程中获得生态专业人士指导的好机会。为支持为此而进行的创新和探索,Protocol Labs将为杰出的项目提供奖金——一等奖4,000美元,二等奖2,000美元。
此外,Protocol Labs将提供价值10,000美元的FIL奖金,由使用IPFS、Filecoin或Libp2p的所有项目平均分配。点击此处查看本周内进行中活动的完整时间表(https://defi.ethglobal.co)。请务必在美国东部时间6月17日星期四上午11:30 收听演讲(https://www.youtube.com/watch?v=alOkQmxKpY0),本次演讲由Filecoin CryptoEconLab负责人ZX Zhang主讲,主题为“第一原理思维——金融和Filecoin的历史缘来”。
回顾Web3 周末
还有能比周末黑客松更好的潜心研究Web3的方式吗?ETHGlobal的小伙伴们也表示赞同,所以我们在5月的最后一个周末加入了他们的Web3周末(https://web3.ethglobal.co/)。
这个为期三天的活动以一整天的峰会拉开帷幕,汇集了来自整个生态系统的专家和引导者,旨在鼓励和激励建设者去挑战去中心化技术的更多可能性。本次活动我们提供了价值20,000美元的Filecoin (FIL)奖金池,在Web3 Weekend期间平均分配给所有基于或使用IPFS和Filecoin的作品。任何使用生态系统工具(如Textile、Pinata、Fleek、Ceramic、Fission和Livepeer等)构建的项目都获得了奖金—总计有超过65个决赛选手!点击查看此博客(https://blog.ipfs.io/2021-06-08-web3-weekend/) 全面回顾本次活动的挑战和决赛选手,另外还有Protocol Labs的演讲和研讨会。
存储
Starling Lab:为人类数据建立信任
Starling Lab正式启动,致力于继续建立必要的Starling框架,为人类最重要的数字信息赋予了信任。在与南加州大学Shoah基金会和斯坦福大学的合作中,Starling Lab正在部署技术和技巧集,使去中心化互联网成为一个可行的社会影响平台。在Protocol Labs和为分布式网络而设的Filecoin基金会最初承诺的200万美元资金支持下,Starling Lab是全世界首个致力于使用去中心化工具强化人类权益的中心。
Starling Lab解决方案的核心是Starling框架,这是一套建立在IPFS和Filecoin上的开源原型、最佳实践和案例研究,其主要目的是为了减少数字媒体中的信息不确定性。Starling框架建立在捕捉、存储和验证信息以保护其完整性的基本需求之上。点击此处阅读更多关于
Starling Lab(https://filecoin.io/blog/posts/starling-lab-establishing-trust-for-humanity-s-data/)相关信息。
提供存储
IPFS、Filecoin和内容持久性
互联网的内容可持续性面临两个基本问题:寻址和持久性。寻址是指互联网用户可以找到他们在网上寻找的内容的方式。如今的网络倾向于位置寻址,或通过定位来找到内容,而不是内容寻址。内容寻址可以让网络参与者始终确信其内容不会随着时间推移而改变,且没有明确的改变记录。持久性是指网络参与者能够永久地持续访问其内容而不必担心内容消失或者因任何原因变得不可用。请阅览近期博文了解更多信息(https://blog.ipfs.io/2021-06-03-ipfs-filecoin-content-persistence/)。
更新
Web 3的创始人们,由Juan Benet主讲
今天在“Web3创始人”节目中,Protocol Labs的创始人兼首席执行官Juan Benet与Jamie Burke共同探讨了去中心化云未来、新数据经济、DeFi数据资产、IPFS和NFT去中心化存储以及与Outlier Ventures激动人心的新加速器合作。点击此处收听演讲(https://outlierventures.podbean.com/e/the-new-data-economy-with-juan-benet-of-protocol-labs/)!
IPFSForce团队最新信息
Filscan 2.0(https://filscan.io/)来了!2.0版本的改进之处包括可查看矿池排名、支持大额转账、(增加日/夜模式)、针对节点的综合表现进行更全面的数据分析,包括奖励和成本、整个网络中的排名以及FIL市场的趋势等。在长期计划中,Filscan将提供更多关于最大分布式存储网络的有价值数据,以服务于各种生态系统的参与者。
HyperDrive AMA 1回顾
自从Filecoin v13 ‘HyperDrive’ 网络升级公告(https://github.com/filecoin-project/community/discussions/74#discussioncomment-707228)发布以来,Filecoin社区一直对本次升级将对整个网络有何种意义而感到好奇。6月8日,Filecoin举办了一次AMA,就网络升级、封装、新存储交易管理等25个问题进行了解答。
点击此处(https://filecoin.io/blog/posts/filecoin-v13-hyperdrive-ama-1-recap/)查看Q&A环节的回答摘要。随着v13版HyperDrive网络升级即近,我们期待举办更多类似的会议,所以请在6月22日星期二下午6点(PT时间)加入我们的HyperDrive深度研究-更多细节即将披露。同时,请持续关注Filecoin社区论坛(https://github.com/filecoin-project/community/discussions/74#discussioncomment-707228)、Filecoin社区Slack(https://filecoin.io/slack)上的更新。还可以关注微信公众号(Filecoin-Official)和Twitter(https://twitter.com/Filecoin)。
学习
DI2F:用IPFS和Filecoin使互联网去中心化
首届以研究为重点,以去中心化、IPFS和Filecoin为主题的研讨会来了!DI2F将于6月21日与IFIP Networking 2021同时举行,本次活动日程相当紧凑且振奋人心,安排了论文展示、演示、摘要、实践教程和特邀讲座。此次研讨会将重点关注协议和架构扩展、去中心化身份和Web 3.0服务。
研讨会的实践环节将引导观众开始学习IPFS基本知识,且一场为期三周的黑客松活动将在当天结束时拉开序幕,最终的决赛选手会获得超过1000美金的奖金。
研讨会将于6月21日下午13:00-18:30(UTC+3时间)启动。点击研讨会程序可查看日程(https://networking.ifip.org/2021/workshops/di2f-decentralising-the-internet-with-ipfs-and-filecoin),点击此处注册会议和研讨会(https://networking.ifip.org/2021/registration)。需注意,非作者学生可以免费参加,但仍需注册。
Base Layer播客,由Colin Evran主讲
上周,Filecoin生态负责人Colin Evran与David Nage一起参加了Base Layer播客,讨论分布式存储在Web3.0中的作用。请务必将其添加到您的收听列表中(https://podcasts.apple.com/us/podcast/base-layer-episode-211-colin-evran-from-protocol-labs/id1445373535?i=1000524502274),以了解Filecoin、IPFS和更多信息!
社区
Slingshot 2.3阶段回顾
Slingshot 2.3阶段闭幕式于6月9日举行,此阶段是Slingshot竞赛至今最有成效的阶段之一。过去的2个月,Filecoin社区的一些成员参加了Slingshot竞赛 2.3阶段。25个团队通过300,000个存储交易将近9个PiB的数据存储至网络,并从165,000 FIL的奖池中获得了奖励!在正式阶段结束时(5月14日),13.4PiB的数据已通过Slingshot上传至Filecoin。点击此处(https://www.youtube.com/watch?v=uG8RtJuFcqc)观看2.3阶段闭幕式记录,了解更多关于本阶段主要收获的相关信息,并听取参赛团队的发言。欲观看完整回顾,请查看此博文。
加入七月社区线上见面会
Filecoin社区见面会是结识Filecoin生态中工具和项目缔造者的好机会。如果错过了六月线上见面会,观看录播了解详情(https://www.youtube.com/watch?v=I_0OvK04BQA&list=PL_0VrY55uV1-8SUcSq3bYUJCVVxcY-7-X),本次见面会将会有PowerLoom、Secured Finance和Curio的演讲。请务必在北京时间7月13日下午1点加入我们的下一次虚拟见面会— 点击此处注册(https://www.meetup.com/Filecoin-San-Francisco/events/dcqjfsycckbrb/)!
加入社区
前往 GitHub上的Filecoin项目(https://github.com/filecoin-project),也别错过社区资源(https://github.com/filecoin-project/community)。可以通过Filecoin Slack(http://filecoin.io/slack)提问,在社区论坛(https://discuss.filecoin.io/)中讨论问题和新想法。您也可以关注我们的微信公众号@Filecoin-Official或者在Twitter上关注@Filecoin(https://twitter.com/Filecoin)告诉我们您的想法。
我们Filecoin博客(https://filecoin.io/blog/)和YouTube 频道(https://www.youtube.com/channel/UCPyYmtJYQwxM-EUyRUTp5DA)也有丰富的基础内容。如果仍然没有解决问题,可以回复此邮箱,我们会帮您找到答案。
——————————————
在浏览器中实现IPFS连接的指引(教程)
我们看到很多关于在浏览器里使用js-ipfs的问题。这篇文章展示了用js-ipfs搭建最小化的聊天应用的例子,这个应用可以在浏览器中运行。它使用WebRTC去实现浏览器对浏览器的连接(在可用时),如不可用则使用回路中继(Circuit Relay)去连接浏览器节点。消息的传递是通过libp2p的pubsub功能实现。
获取代码
你可以在这里(https://ipfs.io/ipfs/bafybeia5f2yk6td7ciroeped2uwfivo333b524t3zmoderfhl3xn7wi7aa/)查看演示。如果你想要一个可以自行编辑的本地拷贝,可以使用IPFS下载整个目录:
然后,只要在浏览器中打开index.html,就可以立即自动连接到节点并寻找连接资源。
你也可以在GitHub上分叉 heDiscordian/browser-ipfs-chat(https://github.com/TheDiscordian/browser-ipfs-chat) 项目,就可以立刻开始测试了!如果你想部署自己的版本,只要编辑index.html并遵循以下的设置信息:
在这个例子中使用的库是js-ipfs(https://github.com/ipfs/js-ipfs/blob/master/docs/BROWSERS.md) 和 Bootstrap (只包含了最小化的CSS样式文件)。如果你想要一个新版本的js-ipfs,可以下载这个(https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js) 以获得最新的可用版本 😃.
让我们看一下这个过程的工作原理。
📖 目录表
* 🪐 节点发现和连接(#🪐-peer-discovery-and-connectivity)
* 🐳 Docker容器 (可选)(#🐳-docker-optional)
* 创建一个存储卷(#create-a-volume)
* 配置域名(#configure-a-domain)
* 运行容器(#running-the-container)
* 🌟 WebRTC-Star(#🌟-webrtc-star)
* 使用(#usage)
* 设置(#setup)
* ⚡ p2p-circuit(#⚡-p2p-circuit)
* 使用(#usage-2)
* 设置(#setup-2)
* 公告(#advertising)
* 🔒 SSL证书 (Nginx)(#🔒-ssl-nginx)
* 🌐 通讯(#🌐-communication)
* 📰 PubSub(#📰-pubsub)
* ⚠️ 可能存在的浏览器问题(#⚠️-possible-browser-pitfalls)
* 保持与节点的连接(#staying-connected-to-peers)
* 保持与回路中继的连接(#staying-connected-to-the-circuit-relay)
* 🎉 总结(#🎉-conclusion)
🪐 节点发现和连接
在浏览器中,发现和连接到节点可能是有难度的,因为我们无法监听新节点,也没法访问分布式哈希表(DHT)。为了实现在浏览器中运行的最佳体验,理解如何寻找节点和保持与其的连接是很重要的。
聊天应用的例子通过两种方式实现此目标。使用WebRTC-Star,我们实现了直接的浏览器对浏览器通讯,并配置了两者之间的回路中继。这个聊天应用也在左上方配置了一个状态指示器,让你知道自己的连接种类。绿色表示你连接到了中继(即便是通过另一个节点来连接);黄色表示你只看到直接连接的节点;红色表示你没有连接到节点(至少在聊天应用中没有连接)。
网络图表展示路径中的节点可以彼此间发现和通讯(https://ipfs.io/ipfs/QmX2og5BKJCMVaebEm9ZGsACEYExoGqxhJjePKNc2mZ2pE "Browser IPFS network graph")
🌟 上图展示了一个有3名用户的网络是什么样子的。值得注意的是浏览器节点也可以与 go-ipfs节点通讯。因此,浏览器C并不需要是一个浏览器,也可以是一个go-ipfs节点。
🐳 Docker容器 (可选)
如果你不想使用Docker容器,可以直接跳到WebRTC-Star(#🌟-webrtc-star) 的章节。
在这个章节后,我们会涵盖WebRTC-Star和回路中继的作用,以及相关的设置方法。不过,如果你想通过Docker快速上手,我已经准备了一个可用的镜像。它可能不是最佳的长期解决方案,不过如果你只是想快速上手和进行实验的话,就是很好的方式了。
创建一个存储卷(volume)
首先,创建一个存储卷去存储密钥和节点数据这样的长期数据。
配置一个域名
你需要一个域名和SSl证书以在浏览器节点里使用这个套件。下面有两个选项:第一个会运行certbot证书机器人程序并自动获取域名证书。另一个选项不会处理SSl证书,你需要将9091端口反向代理到9090端口(SSL),且4011端口反向代理到4430端口(SSL)。
你可以选择其中一种方式,然后你的IPFS节点会初始化并提供像 `PeerID(节点ID)` 和回路中继地址这样的信息。记住,你想将这个信息编辑到聊天客户端里,这样可以使用自己的节点 (参考 WebRTC-Star 使用(#usage) and p2p-circuit 使用(#usage-2) 以获得示例,或者编辑 index.html文件并将我的节点的多个地址设定(multiaddresses)换成你自己的。
使用certbot证书机器人
确保80端口没有被占用,然后对比下面的检查清单,接着运行下面的命令:
不使用certbot证书机器人 (禁用SSL证书)
如果你使用这个选项,容器不会处理SSL证书,你需要将9091端口反向代理到9090端口(SSL),且4011端口反向代理到4430端口(SSL)。
📝 检查清单
将DOMAIN.COM替换成你的域名
确保域名被正确指向到容器运行的机器上(子域名也能正常工作)
运行容器
在配置好后,运行容器是很简单的。最起码要确保4430端口和9090端口被转发。
🎉 现在你应该将此机器作用WebRTC-Star节点或p2p-circuit节点。
🌟 WebRTC-Star
我们可以使用 WebRTC-Star(https://github.com/libp2p/js-libp2p-webrtc-star)节点来帮助发现其他可以直接通过浏览器对浏览器连接的节点。我觉得可以将此看成跟STUN(https://en.wikipedia.org/wiki/STUN)类似,如果你已经熟悉了这个概念的话。实际上,每一个连接节点将会被赋予一个WebRTC-Star multiaddress(https://docs.libp2p.io/concepts/addressing/) 地址,这样其他节点可以直接发现和连接到你的浏览器。这意味着如果你与其他star节点连接上了,当star节点下线时,你依然保持连接。
使用
连接到一个star节点是很简单的:
设置
请注意这个例子使用了我自己的star节点。不过,这些节点并不一定可以在任何时候都连接上。当前重要的事情是要么找一个可靠的star节点,要么搭建自己的。你可以很容易地根据这里(https://github.com/libp2p/js-libp2p-webrtc-star#rendezvous-server-aka-signaling-server)的指示来以原生的方式搭建自己的节点,也可以根据这里(https://github.com/libp2p/js-libp2p-webrtc-star/blob/master/DEPLOYMENT.md)的信息来使用Docker容器(包含为SSL功能配置的Nginx)。如果你选择原生的方式,我们会在这篇文章的后面介绍Nginx反向代理过程和SSL证书取回的方法。
🚀 这是一个简洁\高效的P2P通讯方式。不过有时候NAT网络会带来障碍。我们使用p2p-circuit(https://docs.libp2p.io/concepts/circuit-relay/) 来绕过它。
⚡ p2p-circuit
使用 p2p-circuit对在NAT网络(或VPN等)后面的节点是很有用的。我发现p2p-circuit的中继与TURN(https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT)是很相似的,如果你对那概念熟悉的话,应该就很容易理解了。
使用
当 p2p-circuit的所有服务就绪后,可以用几种方式连接到节点。首先,在启动时 _只_ 连接到我们的节点:
或者可以之后添加我们自己的节点,然后手动初始化连接:
如果你想不复制例子并实现自己的客户端,那确保你与公告频道(announce channel)也在进行通讯,这在公告(#advertising) 这里描述了。在聊天演示应用中,相关的代码简化如下:
设置
就如star节点,你要认识到这篇文章里列出的节点是在任何时候都可能下线的,所以架设自己的节点是很重要的。
为了实践这个例子,你还需要在架设自己的go-ipfs(https://github.com/ipfs/go-ipfs) 节点的服务器上做一些事情。你还需要一个可用的Nginx安装配置,它将会被SSl证书使用,这个证书是浏览器所需要的。
首先配置Go节点,启用WebSocket(https://en.wikipedia.org/wiki/WebSocket) 支持,然后通过编辑~/.ipfs/config并添加以下的设置来将其指定为一个中继,这样就可以从浏览器里与其通讯了:
以自己习惯的方式重启go-ipfs节点 (可能是systemctl --user restart ipfs命令),这样就差不多就绪了。我们已经启用了支持中继的常规WebSockets接口,不过还需要安全的WebSockets接口配置(在下面的SSL章节有介绍),否则浏览器就无法与我们连接。
公告
使用p2p-circuit可能会有点麻烦。当我们从浏览器连接到中继时,我们并不会向网络公告自己将会通过中继接受连接。为实现这个目的,我创建了go-ipfs一起使用的Python脚本,它可以通过p2p-circuit multiaddress(https://docs.libp2p.io/concepts/addressing/)以PubSub(https://docs.libp2p.io/concepts/publish-subscribe/)来公告其发现的浏览器`js-ipfs`节点。
你可以在这里(https://gist.github.com/TheDiscordian/51962fea72f8d5a5c3bba79dd7009e1c) 找到该Python脚本,运行方式可以是python ipfs_peeradvertiser.py命令。不过,确保你先以自己的节点信息编辑CIRCUIT,否则就无法正确地公告这些节点,这些节点也无法知道如何使用你的中继连接到其他节点。
你可以简单地获取自己的信息。在你的go-ipfs节点上运行ipfs id命令获得你的PeerID标识,然后以下面的方式构造回路URL地址:
可以看到,这里只要填入你拥有SSL证书的域名地址,以及自己节点的PeerID标识。在脚本里,前面的斜杠和后面的斜杠都是需要填入的。
⚠️ 注意 ⚠️
根据你的地址类型(IPv4或IPv6),确保你指定了对应的DNS6或DNS4域名解释服务。使用DNS解析服务是很重要的,否则浏览器节点很可能无法连接。同样要关注4430端口,如果你使用了另一个端口,就需要进行指定。
🔒 SSL证书 (Nginx服务)
现在我们在没有SSL证书的情况下设置了WebRTC-Star和 p2p-circuit(除非你使用了 WebRTC-Star的docker容器方案)。如果你想在互联网上通过浏览器使用节点,就需要支持SSL证书。如果你使用了当前的默认配置,那么WebRTC-Star应该是在9090端口(非SSL)上运行,而p2p-circuit应该会在4011端口(非SSL)上运行。我们将会把这些端口各自指向给9091端口(SSL)和4430端口(SSL)。
首先确保Nginx服务安装好了,然后获取并安装Certbot证书机器人(https://certbot.eff.org/docs/install.html)。
我们将从下面的模板创建两个文件。确保你将类似YOURDOMAIN.COM这样的配置更改成你实际想用在服务上的完整域名(包含子域名)。
在这个例子中,你可以看到我们在4430端口上接受SSL连接,这就是我们的 "wss端口" (安全的WebSocket端口) ,然后转发到本地的4011非安全端口(即我们的ws端口)。因此如果我们想通过浏览器连接到这个节点,就使用4430端口。
然后,运行以下命令:
🎉 现在Nginx服务已作为反向代理运行,为你提供安全的WebSockets端口了。
🌐 通讯
哇!你已经有这么多进展了,可能会想通讯是什么样子的?幸运的是,相比于节点发现,通讯是非常简单的,只是可能会有一点小坑。我们将简单介绍如何在聊天的例子中使用PubSub(https://docs.libp2p.io/concepts/publish-subscribe/) 并在此过程中发现的一些坑。
📰 PubSub
使用PubSub,我们可以订阅主题并取回这些主题下发布的信息。在js-ipfs中,我们可以设置一个回调函数,这样在收到信息时就可以得到通知了:
发布也是很简单的:
这就是这个聊天演示应用的功能。它订阅了一个名为"discochat-global"的全局主题,并简单地将人们输入的信息通过PubSub进行中继。
⚠️ 可能存在的浏览器问题
假设你的操作都正确完成了,就可以使用WebRTC-Star和 p2p-circuit来寻找节点。太棒了!不过,你可能会发现连接超时,而且无法恢复。我并不确定这种行为发生的原因(可能是某些浏览器策略);不过我们还是可以努力尝试应对这些问题的!
与节点保持连接
我们有几种方式与节点保持连接。第一种是更直接的:每隔4秒通过discochat-keepalive订阅和发送"keepalive"信息:
这应该能帮助确保我们为有意向聊天的节点提供更高的优先度。此外,我们每隔15秒通过announce-circuit进行汇报,以确保维持与回路中继的连接,这样就可以连接到NAT网络后的节点。可通过以下的方式实现:
🌟 在p2p-circuit#使用(#usage)可以找到简化版本的processAnnounce。
回路中继上的Python脚本会每隔4秒汇报一个保持活跃连接(keepalive)信息。你可能已经注意到我们汇报的是 "peer-alive" 而不是"keep-alive"信息;这是为了将节点请求与中继请求区分来开,让我们更容易知道缺乏可用中继的情况。
与回路中继保持连接
在processAnnounce的简化版本之外,在真实的版本中有几个变量用于追踪keep-alive和peer-alive信息。它们各自是lastAlive和lastPeer。我们甚至可以通过lastBootstrap来追踪最近一次的初始化启动(bootstrap)时间。通过这些,我们可以在只连接到节点(通过lastPeer追踪)时展示黄色的状态,而在35秒内没有看到keep-alive信息时(且没有在60秒内尝试初始化启动时)可以尝试重新连接到初始化启动中继(并展示红色状态)。可通过以下的方式实现:
🌟 上述方法应该与processAnnounce的完整版本一起使用,因为它依赖于简化版本中没有包含的lastAlive和 lastPeer功能。
🎉 总结
我希望这些信息足够带你上手了。如果你成功遵循这个指引,你就有能力部署可完全在浏览器中运行的功能强大的IPFS应用,并在任何地方利用去中心化的P2P网络。我选择了一些有用的资源并分享在下面以供进一步阅读:
js-ipfs/docs/BROWSERS.md(https://github.com/ipfs/js-ipfs/blob/master/docs/BROWSERS.md)
js-ipfs/docs/CONFIG.md(https://github.com/ipfs/js-ipfs/blob/master/docs/CONFIG.md)
js-ipfs/docs/core-api(https://github.com/ipfs/js-ipfs/tree/master/docs/core-api)
js-ipfs/examples/circuit-relaying(https://github.com/ipfs/js-ipfs/tree/master/examples/circuit-relaying)
js-libp2p-webrtc-star(https://github.com/libp2p/js-libp2p-webrtc-star)
——————————————
Filecoin Grant线上黑客松招募进行中:超过50K美元奖金池等你瓜分
让我们一起创建吧!
2021年5月1日,Filecoin Grant线上Hackathon在DoraHacks开发者平台Hackerlink正式启动!
本次Hackathon由Filecoin赞助5万美元奖金池,鼓励开发者们为Filecoin生态贡献idea和早期项目。其中25K奖金池根据社区捐助投票结果分配,25K由评委投票决定分配。欢迎来自全球的开发者提交基于Filecoin的区块链项目!
除了丰厚奖金,Filecoin 技术团队特别设计了一系列workshop,讲解如何入门Filecoin开发;还有Filecoin 生态负责人会为大家讲解加入Filecoin 开发者会生态有哪些福利。
Let's BUILD on Filecoin - Web3: apps, dapps, and more!
Filecoin Grant为你准备了
1. 丰厚奖金:25K美元初始奖金池+25K美元评委奖金池,总计50K美元!
2. 评委团:全程坐镇观察,发掘潜力项目,投票分配25K美元评委奖金池。
3. Filecoin团队支持:优秀项目有机会和Filecoin直接交流,获得Filecoin团队全程协助。
4. 技术指导Workshop:来自Filecoin技术导师通过一系列workshop,为你讲解如何入门Filecoin生态。
5. 团队/项目宣传曝光:每个参赛项目都有机会参与Demo Day直播进行项目展示,获得大量曝光;demo后,IPFS中文社区还会对项目进行专访~
6. 潜在投资机会:参加项目Demo Day直播,让更多投资人看到你的项目!
本次资本观察团成员有:
分布式资本、Binance Smart Chain、OKExChain、HECO、DFG、SNZ、NGC、Multicoin、Dragonfly、HashKey 、Candaq、德邻资本、CabinVC、Kernel Ventures、科银资本、DoraHacks Ventures
奖金池的构成
投票者的每一票,都会直接影响奖金分配。
Grant奖金由三部分组成:
a. 社区投票:社区用户会选择自己感兴趣的、认为有潜力的Hacker项目进行投票,此部分投票所花费USDC将在活动后直接分配被投票的项目团队。
b. 25K初始奖金池:初始奖金池将按照项目人气分配给各个项目。
c. 25K评委投票奖金池:评委投票奖金池将按照评委的选票分配给各个项目。
也就是说,项目最终获得的奖励=社区捐助+初始奖金池配额+评委奖金池配额
时间安排
Hackathon 预报名:4月25日 开启
项目提交:5月1日 -7月9日
项目投票:5月1日 - 7月18日 12:00 UTC+0
Workshop 开启时间:5月中旬
第一轮参赛项目demo:6月1日 开始
第二轮参赛项目demo:6月15日开始
第三轮参赛项目demo:7月1日开始
参赛项目最后集中快速demo:7月17日
活动结束: 7月18日 (UTC+0)
什么项目可以申请
Web3 app、dapp、其他建立在Filecoin生态或和Filecoin相关的项目。
谁可以申请
Filecoin生态现有的开发者团队
参加过Filecoin 其他Hackathon 并持续在迭代项目的团队
想要学习Filecoin 相关区块链技术的开发者
如何申请
1. 登陆hackerlink.io,点击Grant-Filecoin Grant进行申请(新用户请先注册哦)。
2. 加入Filecoin开发者专属微信群,获取一手活动资讯。没有项目的开发者也可以在群里组队,共同把idea转化为项目!
3. 同时为了防止虚假项目参与瓜分奖池,请联系脑洞猫(微信:dorahacks3)验证项目真实性
4. Hackathon期间我们会进行多轮项目demo,早上传项目会会获得更多关注,提高项目曝光,吸引更多投票和融资机会。
5. Grant Round结束后,为防止女巫攻击(Sybil-attack),会进行为期24小时的Grace Period并公告投票结果。在Grace Period期间,每个项目需要联系HackerLink并确认项目真实性。Grace Period过后,项目可以取出社区捐助和奖金池配比奖金
关于Filecoin
Filecoin是一个去中心化的、强大的人类信息基础。它通过网络协议,将云存储变成了算法市场。Filecoin的存储证明机制是内置激励机制的分布式存储网络的新基础,将推动全互联网上的数据存储和检索市场。
Filecoin爱好者请加入Filecoin的全球Slack社群:filecoinproject.slack.com
关于Filecoin的更多信息,请参考:
Filecoin网站:https://filecoin.io
FilecoinGitHub: https://github.com/filecoin-project
Filecoin文档:https://docs.filecoin.io/
Filecoin规范:https://spec.filecoin.io/
Filecoin网络部署:https://github.com/filecoin-project/community-china/tree/develop
关于IPFS
IPFS(InterPlanetary File System星际文件系统)是一个基于内容寻址的、分布式的、新型超媒体传输协议。IPFS 支持创建完全分布式的应用。它旨在使用网络更快、更安全、更开放。IPFS 是一个分布式文件系统,它的目标是将所有计算设备连接到同一个文件系统,从而成为一个全球统一的存储系统。
关于IPFS的更多信息,请参考:
IPFS文档:https://docs.ipfs.io/
IPFS协议规范:https://github.com/ipfs/specs
使用go-ipfs进行开发:https://github.com/ipfs/go-ipfs
使用js-ipfs进行开发:https://js.ipfs.io/