IPFS应用程序演示

2019-04-13 19:05:22

  随着像IPFS这样的分布式协议变得越来越普遍,我们将开始看到许多新的应用程序在分布式web上开发,例如offline first ,privacy和reduced bandwidth。

  本文介绍了IPFS上的AWS Lambda copy cat应用程序。我们将使用Golang、Docker、IPFS和Python。需要注意的一点是,这个项目不会使用任何区块链。


2.png

  重要的是要看到像IPFS这样的新技术如何不直接绑定到区块链。我们可以仅使用IPFS和现有的经过时间测试的工具构建有用的应用程序。


3.png


Lambda-like on IPFS


  IPFS PubSub计算是IPFS支持的早期dapp。它的目标是将功能授权为类似于AWS Lambda的服务。我计划继续开发这个应用程序,因为它在构建便携微服务方面有很大的潜力。

  该应用程序允许用户在IPFS PubSub消息触发时在docker容器中执行Python 3.7代码。

  使用IPFS PubSub作为消息传递主干允许我们分离代码编写器和代码执行器。尽管有许多成熟的消息队列系统可用——但我们希望围绕IPFS构建,因为IPFS具有离线特性,并且具有良好的项目开发前景。我们还希望使用IPFS(不仅仅是PubSub),因为我们需要一种方法来分发我们开发的代码包。IPFS是一个完美的分享方式。


介绍- IPFS PubSub计算


  IPFS PubSub计算(因为当时没有更好的名称)有一个非常直接的执行流程。

  首先,我们需要编写代码和事件——就像在AWS Lambda中一样。

  这里我们使用的一些代码对应于第二个project Euler问题的解决方案(关于添加斐波那契数)

4.png\

 

  我们将代码和作用于代码的事件发送到运行在localhost:8769上的本地服务器,这将取出输入并将其转发到PubSub通道。实际代码如下所示。


5.png


  现在消息被发送到IPFS PubSub通道(我们使用test作为默认通道)


6.png

 

  另一个IPFS节点(或演示的相同节点)正在监听通道,并在test通道上广播“execute”消息时执行dockerrun。实际代码如下所示。


7.png

 

  现在代码从消息复制到一个临时位置。然后docker容器读取代码,并用给定的event输入执行代码。


6.png


  docker容器是AWS Python 3.7 Lambda容器的精确副本,并被用作本地开发的参考。在我们的例子中,它作为一个包含Python的工作人员工作得非常好。

  由于我们可以快速创建和销毁容器,所以我们使用事件处理程序将这些容器连接到网络,从而创建了一个微型IPFS power分布式计算机!经过一些努力,这个系统可以跨许多机器扩展,并利用IPFS的所有优点。

  一个主要的改进——下一步是允许用户将代码作为对象部署到IPFS。通过这种方式,我们可以将代码引用为一个CID,并将函数分发给其他人。如果他们也有ipfs-pubsub-compute,他们就能够自己执行代码。

  通过添加一些代码,应用程序可以处理(CID、事件)请求,并在执行时获取代码。

  这些努力几乎实现了一个离线的first server-less体系结构,但肯定需要大量工作来准备生产。


演示

  基于上述概念和运行go-ipfs节点,我们可以构建和运行应用程序!


最新推荐