您是否正在寻找可以学习如何构建区块链应用程序的指南?这是一个指南,可以帮助您从头开始构建区块链应用.
在本文中,我们将构建我们的区块链应用程序。最近,我们介绍了如何构建区块链。这是有关使用Python编程语言构建区块链的完整指南。本教程的主要重点是学习区块链技术及其内部工作原理.
但是,本教程将介绍如何使用区块链构建应用程序。去中心化应用程序(dApp)将能够利用区块链属性.
我们将使用以太坊构建一个简单的区块链应用程序。以太坊是第二代区块链技术,提供先进的功能,例如智能合约,权益证明以及最重要的是创建去中心化应用程序(dApps)的能力.
因此,让我们从“如何构建区块链应用”教程开始。本教程还针对那些希望构建简单的区块链应用程序的人。为了构建一个简单的区块链应用程序,我们将使用以太坊网络.
但是,在我们开始之前,让我们先了解一下基本知识.
现在报名: 企业区块链基础课程
什么是dApp?
我们将如何构建区块链应用程序教程的第一步是首先学习去中心化应用程序(dApp)的概念.
dApp代表分散式应用程序。它是另一种类型的应用程序,具有关键特性,包括自主运行的能力。该应用程序还以加密方式存储数据,因此没有任何未经授权的实体未经适当授权就无法访问它.
所有这些特征使分散式应用程序在当前企业环境中非常有用。这些应用程序还能够使用令牌,这些令牌可用于利用该应用程序提供的功能。此外,该应用程序还可以分发令牌以激励参与使dApp正常运行的节点.
选择平台–为什么我们选择以太坊平台
目前,您可以选择许多平台来构建dApp。它们包括流行的区块链平台,例如以太坊,Hyperledger Fabric和Cardano。在所有这些中,以太坊似乎是最好的选择,因为在线上有活跃的社区,工具和教程.
我们选择以太坊的另一个原因是它使用了Solidity。明确实现了牢固性,以部署和创建dApp和智能合约。它易于学习,可让您灵活地进行实验.
构建去中心化区块链应用程序的实用指南
在深入研究代码之前,我想列出概述构建区块链应用程序过程的步骤。让我们在下面浏览一下.
找到一个主意
第一步是找到一个可行的想法。分散化是一个很酷的新概念,可以有很多用例。作为学习者或工程师,您应该想出一个有益于您或您的公司的有用想法。另外,如果您无法提出改变景观的想法,请不要担心。仅仅为了学习和实践而构建简单的dApp是可以的.
您还可以搜索区块链面临的问题,并尝试尽最大努力解决这些问题。这里的要点是从痛苦的角度来看问题,然后尝试解决.
如果您要为业务或根据业务需求构建dApp,则需要进行适当的成本/收益分析。您还需要探索与项目相关的风险,并查看您的业务团队是否可以通过尽职调查来管理应用程序.
在任何情况下,您都不要做出仓促的决定,以后您会后悔。这是因为区块链开发成本很高,尤其是在寻找开发和管理人才方面。最重要的是,缺乏在区块链上工作的开发人员。简而言之,当涉及区块链或区块链应用开发时,您应该采取适当的步骤.
这是dApp开发指南,您可以了解创建新的去中心化应用程序背后的机制.
选择一种共识方法
任何分散式应用程序都需要适当的共识算法才能起作用。它确保交易经过验证,并且不会发生欺诈。作为开发人员或学习者,您需要从任何可用的共识方法中进行选择,包括权益证明,委托权益证明,拜占庭容错等等!选择应取决于您的熟悉程度和应用程序要求.
选择平台
在这里,您需要选择一个自己选择的平台。显然,我们已经涵盖了以上要点。您主要有三种平台可供选择,包括以太坊,Hyperledger Fabric和Cardano.
您可以使用许多企业区块链框架,但是我们将使用以太坊.
管理控制台和用户界面
应用程序应具有适当的用户体验。这就是为什么您应该构建具有良好用户界面的区块链应用程序的原因。该应用程序还应具有一个管理控制台,以便您可以轻松管理它.
了解区块链原理
开发人员通常在不了解底层概念和原理的情况下启动区块链应用程序开发教程。这就是为什么在开始开发应用程序开发教程之前,我完全推荐区块链基础知识的原因。您可能还需要阅读有关其生态系统的信息,包括区块链工具,平台和加密货币.
实践与发展
尽可能多地练习技能。这将为您提供将来开发更复杂的应用程序的技能.
如何构建一个区块链应用程序?简易方法
是的,你没有看错。在本节中,我们的重点是仅用五个简单步骤即可创建一个简单的区块链应用程序。如果您从未构建过区块链应用程序,那么这五个步骤将帮助您更好地了解流程.
五个步骤如下.
- 安装依赖项并克隆存储库.
- 运行Ganache CLI
- 合同编制
- 合同部署
- 合同互动
就这样。您可以在帖子本身上找到更详细的步骤。这是区块链上的简单投票应用程序.
如何构建一个区块链应用程序?艰难的方法
好吧!你抓到我了!您不想要简单的方法,而是想要用困难的方法学习区块链。不用担心,因为在本部分中,我们将使用以太坊智能合约创建待办事项列表应用程序.
区块链应用工作
在深入研究创建区块链应用程序之前,让我们先了解一下区块链应用程序如何工作.
为了了解这一点,让我们看一个简单的应用程序是如何工作的。任何可在互联网上运行的应用都将使用浏览器或Windows上的专用应用在用户计算机上呈现。无论如何,它都会向服务器请求页面或信息,然后将页面或信息呈现在用户的计算机上.
对于Web应用程序,所有内容都是集中的。这确实提供了一些好处;但是,在安全性方面还有很多需要改进的地方。区块链应用程序的工作方式完全不同。一切都分散了,包括存储在应用程序中的代码和数据.
智能合约
这里的关键是智能合约。智能合约可简化应用程序本身。它包含使应用程序正常运行的所有代码。它还可以使过程自动化并确保其按预期工作。在我们的教程中,我们将使用智能合约来编写待办事项列表的不同功能.
智能合约使用Solidity编程语言。它类似于JavaScript。编写智能合约后,其代码将不可更改且不可更改。您可以在部署时自由更改代码。但是,一旦部署了应用程序,您将无法更改代码。这样做是为了给区块链应用带来可信赖性和安全性。该方法还意味着,在部署智能合约之前,您需要格外小心并进行所有测试。此外,智能合约代码本质上是公共的.
想学习如何使用Python构建区块链吗?这是一个可以使用Python构建区块链的教程.
制作我们的区块链待办事项清单应用程序
为了确保您理解概念,您首先需要学习Todo区块链应用程序将如何工作。我们将使用以太坊制作应用程序。我们的应用程序将使用单个以太坊节点,并且还将具有一个客户端应用程序。我们将使用Solidity编写智能合约,然后进行部署.
作为开发人员,您需要使用以太坊钱包-这很容易制作.
准备就绪-创建环境
要创建本地环境,我们将需要多个工具和软件包。让我们一一讲解.
伽纳彻
伽纳彻 是一个以太坊开发工具。它使您可以管理,部署和开发应用程序,智能合约和测试。我们将为该教程运行Windows版本。如果您使用其他操作系统,则也可以下载Mac或Linux版本。安装后,您应该可以通过命令行工具使用它.
Node.js
Node.js是我们需要安装的下一个工具。为了使私有区块链在您的计算机上运行,您需要安装 节点包管理器.
安装完成后,打开您的终端并在下面键入命令。如果它运行了,那您就很好了.
$ node -v
MetaMask以太坊钱包
当我们要在以太坊区块链上工作时,我们需要一个可以在浏览器中工作的钱包. 元掩码 是一个网络浏览器钱包,可让您与以太坊区块链进行交互.
松露框架
我们要安装的最后一个软件是 松露框架. 它提供了广泛的工具,可让您在dApp上有效地工作。您可以使用Solidity编程语言来开发以太坊智能合约.
Truffle Framework的一些关键功能包括以下内容
- 正确的智能合约管理
- 网络管理
- 自动化测试
- 开发控制台
- 脚本运行器
- 部署和迁移
- 客户端开发.
要安装,您需要使用 npm命令. 只需在命令行中运行以下命令.
$ npm install -g [受电子邮件保护]
安装需要一些时间才能完成。另外,请注意,您需要安装确切的版本才能遵循本教程.
想要成为区块链专家吗?立即注册我们的认证企业区块链专业课程!
设置项目
凉爽的!现在,我们已经可以使用我们的开发环境。现在,我们要做的就是创建我们的项目。为此,我们需要创建项目目录。让我们在下面做.
$ mkdir dapp-todo
$ cd dapp-todo
进入文件夹后,您需要通过运行以下命令来启动松露项目.
$松露初始化
完成后,将显示如上的消息。这意味着文件夹和文件已成功创建。现在,您可以在自己喜欢的文本编辑器中打开该文件夹。但是在执行此操作之前,您需要创建 package.json 文件。这将帮助您安装项目所需的依赖项.
您可以手动创建文件,然后保存如下所示的内容.
{
“名称”:“ dapp-todo”,
“版本”:“ 1.0.0”,
“描述”:“以太坊驱动的待办事项清单”,
“ main”:“ truffle-config.js”,
“目录”:{
“测试一下”
},
“脚本”:{
“ dev”:“ lite-server”,
“ test”:“ echo \”错误:未指定测试\” && Sexit 1”
},
“作者”: ”[受电子邮件保护]”,
“许可证”:“ ISC”,
“ devDependencies”:{
“ bootstrap”:“ 4.1.3”,
“ chai”:“ ^ 4.1.2”,
“ chai-as-promise”:“ ^ 7.1.1”,
“ chai-bignumber”:“ ^ 2.0.2”,
“精简服务器”:“ ^ 2.3.0”,
“ nodemon”:“ ^ 1.17.3”,
“松露”:“ 5.0.2”,
“松露合约”:“ 3.0.6”
}
}
完成后,现在运行以下命令以安装依赖项.
$ npm安装
了解目录结构
目录结构如下所示.
让我们一个个地了解每个文件夹.
- 合约书:目录包含所有智能合约。 migrations.sol合同处理向区块链的迁移.
- 迁移: 迁移目录包含迁移数据。从这里开始迁移.
- node_modules:包含所有节点模块/依赖项.
- 测试: 该目录包含测试文件.
- truffle-config.js:此文件包含松露项目配置.
创建智能合约
现在是时候开始创建智能合约了。我们的智能合约将存储在合约文件夹中。我们创建一个名为todo.sol的智能合约文件
完成后,您现在需要编写以下代码.
语用强度^ 0.5.0;
合同待办事项{
//这里的代码
}
代码的第一行指定我们用来编写智能合约的Solidity版本。接下来,我们需要使用contract关键字并创建一个Todo合同。这将包含智能合约的代码.
现在,我们添加一个变量以查看一切是否按预期工作.
语用强度^ 0.5.0;
合同待办事项{
uint任务= 0;
}
在这里,我们定义了task变量,该变量将计算Todo应用程序中的任务数量.
连接到Ganache
随着我们在Truffle中正确设置了智能合约,我们现在需要连接到我们创建的Ganache私有区块链。为此,需要更新一些配置文件。我们还需要创建一个迁移脚本并运行它,以便我们可以连接到个人区块链网络.
首先,我们需要更新truffle-config.json文件。它应该在核心项目目录中。打开后,复制并粘贴以下代码.
module.exports = {
网络:{
发展: {
主持人:“ 127.0.0.1”,
端口:7545,
network_id:“ *” //网络ID匹配
}
},
solc:{
优化器:{
已启用:true,
跑:200
}
}
}
创建了truffle-config.js文件后,现在是时候创建迁移脚本了,这样我们创建的智能合约就可以迁移到个人区块链网络了。.
我们将名称命名为2_deploy_contracts.js
迁移对于我们的Todo应用程序至关重要。由于区块链是一种数据库,因此我们需要将其从一种状态更改为另一种状态。这是迁移的地方.
要链接迁移文件,我们需要更新以下代码,将其添加到新创建的迁移文件中.
var Todo = artifacts.require(“ ./ Todo.sol”);
module.exports = function(deployer){
deployer.deploy(Todo)
}
代码的第一行只是创建一个引用我们智能合约的变量。完成后,我们将其部署.
完成后,现在运行迁移命令.
$松露迁移
您也可以使用以下命令运行控制台.
$松露控制台
开发我们的待办事项清单应用程序
现在我们已经成功运行了第一个以太坊智能合约,现在是时候向dApp添加功能了。我们的dApp很简单。它将在我们的待办事项列表中列出任务。我们需要使用智能合约来实现它.
让我们在下面做.
语用强度^ 0.5.0;
合同待办事项{
uint公共任务= 0;
struct Task {
uint ID;
字符串内容;
布尔完成;
}
}
在这里,我们使用了一个struct关键字来创建一个新的struct Task。我们用它来定义Task的结构,其中包含id,内容和完整的布尔值.
接下来,我们现在需要映射我们的Tasks结构并将其公开,以便可以被区块链访问。为此,我们需要添加以下代码行.
现在,智能合约代码如下所示.
语用强度^ 0.5.0;
合同待办事项{
uint公共任务= 0;
struct Task {
uint ID;
字符串内容;
布尔完成;
}
映射(uint => 任务)公共任务;
}
最后,我们现在需要创建一个处理任务的函数.
函数createTask(string memory _content)public {
taskCount ++;
task [taskCount] = Task(taskCount,_content,false)
}
该功能在大多数情况下是不言自明的。我们创建了函数,以便可以计算Todo dApp上列出的任务数.
最后,我们需要创建一个构造函数来初始化Todo类.
构造函数()公共{
createTask(“这是我们的第一个任务”)
}
我们的todo.sol文件现在应该如下所示.
语用强度^ 0.5.0;
合同待办事项{
uint公共任务= 0;
struct Task {
uint ID;
字符串内容;
布尔完成;
}
构造函数()公共{
createTask(“这是我们的第一个任务”)
}
映射(uint => 任务)公共任务;
函数createTask(string memory _content)public {
taskCount ++;
task [taskCount] = Task(taskCount,_content,false)
}
}
创建任务
我们还可以在Todo dApp中创建任务。为此,我们需要在创建新任务时创建触发器。我们的方法是创建一个新的事件TaskCreated,然后将其添加到我们现有的createTask()函数中.
事件TaskCreated(
uint ID;
字符串内容,
布尔完成
);
现在,将以下行添加到createTask()函数.
发出TaskCreated(taskCount,_content,false);
完成任务
完成任务也可以使用事件添加。您需要将以下事件添加到Todo合同中.
事件TaskCompleted(
使用者编号,
布尔完成
);
要使其正常工作,您还需要添加一个新功能.
函数toggleCompleted(uint _id)公共{
任务内存_task =任务[_id];
_task.completed =!_task.completed;
task [_id] = _task;
发出TaskCompleted(_id,_task.completed)
}
恭喜!您已经在以太坊区块链上创建了第一个Todo列表dApp.
尾注
这也使我们结束了如何构建区块链应用程序教程的工作。这是您从头开始构建构建区块链应用程序的方式.
从那里开始,您需要先正确测试合同,然后才能最终将其迁移到区块链。您还可以创建应用程序的前端并进行测试。如果您对此不感兴趣,则可以启动控制台并访问变量和函数以进行测试!
但是,如果您仍然不了解区块链的含义,那么我们敦促您开始免费的区块链课程,以了解更多信息。如果不学习或不了解它是如何工作的,那么对您来说很难掌握编程概念.