1. IPFS点滴资讯首页
  2. 实战操作

通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)

 

“分散式网络”或“Web 3.0”现在已成为流行语,因为它们将带来当今行业的革命性变革。但是我们中有多少人真正了解Web 3.0?


在本文中,我介绍了Web 3.0的显着特性。在获得对Web 3.0的基本了解之后,我们将一起在IPFS上部署应用程序。该应用程序具有在以太坊虚拟机上运行的Solidity智能合约。以太坊+ IPFS的组合使应用程序真正分散。

通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)

让我们开始吧!

为什么Web 3.0对我们很重要?

Web 1.0是互联网的诞生,互联网上的大多数事件都是非常静态的。没有任何互动性。一个人保持完全匿名,隐私保持完整,因为没有发生任何重大交易。互联网是静止的!没有什么能比我们今天想象的更好。然后在20世纪90年代进入Web 2.0。Web 2.0引发了像Alphabet,亚马逊,微软等巨头的崛起。互联网上出现了疯狂的互动,但是一个人的隐私得到了折腾。

互联网上没有任何东西受到保护和私密。没有。

Web 3.0敦促用户完全控制他/她的数据,从而恢复用户的隐私。Web 3.0支持民主而不是少数巨头的垄断。Web 3.0完全是关于权力下放而不是集中化。从Web 2.0→Web 3.0的转变将是渐进的。这不会在一夜之间发生。但是,提高速度的最佳方法是提高人们的意识。当用户的要求发生变化时,当前的业务要求将发生变化。用户需要意识到他们是他们数据的老板!如果有人从他们的数据中赚钱,那应该是他们。

如果您免费使用该产品; 你是产品。

通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)
通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)

Web 3.0的功能

→没有中心控制点:谷歌,微软,亚马逊等公司将无法再控制您的数据。任何政府机构都无法阻止网站和限制服务。像以太坊这样的区块链将会很激动。简而言之,中间人将完全脱离这个等式。

→数据所有权:最终用户将重新获得对数据的完全控制并具有加密安全性。目前,亚马逊和Facebook等大公司拥有大量数据仓库,可存储价值数十亿美元的信息,以改善其服务。

→大幅度减少黑客攻击和数据泄露:由于数据将分散和分布,黑客将很难找到进入系统的单一点。

→互操作性:应用程序易于定制,与设备无关,能够在智能手机,电视,汽车,微波炉和智能传感器上运行。目前,应用程序是特定于操作系统的,并且通常仅限于单个操作系统。例如,许多Android加密货币钱包在iO上不可用,这对使用多个设备的消费者造成了挫败感。它增加了负责发布多次迭代和软件更新的开发人员的费用。

→无限制的区块链:财富和其他数字资产可以在世界任何地方跨境,快速,高效地进行转移。

→不间断服务:大幅减少帐户暂停和分布式拒绝服务。因为没有单点故障,服务中断将是最小的。数据将存储在分布式节点上以确保冗余,多个备份将防止服务器故障或占用。

查看区块链基金会的精彩互联网了解更多信息!


一些实践学习的时间!

为了节省文章的时间和篇幅,我已经准备好了基本代码。首先,git从我的Github页面克隆存储库。

这是一个基本的民意调查应用程序,在朋友和我如何遇见你的母亲之间举行投票比赛。(这两个是非常着名的美国电视节目。)我个人喜欢朋友!

要顺利运行应用程序,请确保安装了以下内容:

  1. 的NodeJS
  2. 松露框架
  3. 伽纳彻
  4. Metamask Chrome扩展程序

确保GANACHE一直在运行。

要运行该应用程序,请打开控制台并输入以下命令:

$ npm install
$ truffle migrate --reset
$ npm run dev

第一个命令将从package.json文件安装必要的包。

第二个命令在EVM上部署智能合约。

第三个命令将激活localhost服务器。

您应该在屏幕上看到类似的内容:

通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)
我们Election.solContracts文件夹中看到智能合约:
pragma solidity ^ 0.4.2;
合同选举{
//模型候选人
struct Candidate {
uint id;
字符串名称;
uint voteCount;
}
//存储投票的帐户
映射(地址=> bool)公众选民;
//存储候选人
映射(uint =>候选人)公共候选人; //键值对
//获取候选人
//存储候选人数
uint public candidatesCount;
//投票事件
event votedEvent(uint indexed _candidateId);
function Election()public {
addCandidate( “朋友”);
addCandidate(“我如何遇见你的母亲”);
}
function addCandidate(string _name)private {
candidatesCount ++;
候选人[candidatesCount] =候选人(candidatesCount,_name,0);
}
function vote(uint _candidateId)public {
//要求他们之前没有投票
需要(选民[msg.sender]!);
//需要有效的候选人
require(_candidateId> 0 && _candidateId <= candidatesCount);
//记录选民投了票
选民[msg.sender] =真;
//更新候选人投票数
候选人[_candidateId] .voteCount ++;
//触发投票活动
votedEvent(_candidateId);
}
}

本申请的问题在于它托管在集中的localhost上。

我们的想法是将其转移到IPFS。

为此,首先需要安装IPFS。

然后在终端上运行以下命令:

$ ipfs init
$ ipfs守护进程
通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)

现在我们需要将JSON合同文件和Src文件夹放在一个名为的单独文件夹中Dist 。创造它。

为此,请运行以下命令(如果您使用的是MacOS,则可以使用),否则可以手动执行。

$ mkdir dist 
$ rsync -r src / dist / 
$ rsync -r build / contracts / dist /

现在我们需要为IPFS对等集群

$ ipfs swarm peers

现在我们最终将Dist文件夹添加到IPFS。

$ ipfs add -r dist /
通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)

复制哈希,dist这是此列表中的最后一个。现在我们需要发布哈希

$ ipfs name publish QmaikVh9TuP3QCZwi4efAgHxRUniQzhNz5yN7b3KggALsc 
$ ipfs name publish {hash}

此命令可能需要一分钟。

现在让我们在IPFS上访问我们的应用程序!

将您的Web浏览器指向:gateway.ipfs.io/ipfs/{hash}

对我来说,它是:

gateway.ipfs.io/ipfs/QmaikVh9TuP3QCZwi4efAgHxRUniQzhNz5yN7b3KggALsc

你应该看到这个(有耐心):

通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)
现在让我们投票吧!
通过实际部署应用程序来学习Web 3.0:实践方法(IPFS +以太坊)
我们Election.solContracts文件夹中看到智能合约:我们Election.solContracts文件夹中看到智能合约:我们Election.solContracts文件夹中看到智能合约:我们Election.solContracts文件夹中看到智能合约:现在让我们投票吧!现在让我们投票吧!

如果您想使用我的申请,请转到投票。

https://gateway.ipfs.io/ipfs/QmaikVh9TuP3QCZwi4efAgHxRUniQzhNz5yN7b3KggALsc/  :投票链接!

您可以使用MetaMask和Ganache使用不同的帐户进行投票。

这是一个完整的分散应用程序。

原创文章,作者:mestery,如若转载,请注明出处:https://ipfsdrop.com/tech/learning-web-3-0-by-actually-deploying-applications-practice-method-ipfs-to-2/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

QR code