主页 > 官网imtoken钱包苹果版下载 > 区块链服务平台架构,区块链服务平台最新

区块链服务平台架构,区块链服务平台最新

以太坊开发命令_以太坊dapp开发_以太坊web开发

无论您是初创公司的创始人还是计划推出金融服务应用程序的商业领袖,您可能都需要知道如何将区块链用于金融服务。

行业观察人士强调了区块链在金融服务市场的稳步增长。 Markets and Markets 的一份报告指出,金融科技区块链市场将从 2017 年的 2.3 亿美元增长到 2023 年的 62.82 亿美元。该报告预测 2018-2023 年的复合年增长率为 75.9%。

随着当前的经济趋势,您一定想知道如何构建区块链金融服务应用程序。 在我回答这个问题时,请继续阅读这篇文章。

您可以使用哪个区块链:公共与私有

您需要决定使用哪个区块链。 这取决于你的商业模式。 考虑以下场景:

1.您的金融产品或服务仅限于注册客户

您是否希望将您的产品或服务仅限于您所在行业的注册客户? 您可能已经按照相关的 KYC(了解您的客户)流程来注册客户。 您可以选择只有这样的客户才能访问新的金融服务应用程序。

如果是这样,那么在这种情况下,您需要使用经过许可的区块链。 企业区块链符合要求。 它们允许您实施访问控制,并且只允许可信方查看敏感信息。

您可以使用以下任何企业区块链框架/平台:

Hyperledger Fabric:这是来自 Hyperledger Consortium 的开源企业区块链框架。 需要找一个区块链主机以太坊web开发,比如AWS、IBM等。

R3 Corda:这是 R3 的企业区块链平台。

ConsenSys Quorum:摩根大通是第一个开发 Quorum 的公司。 ConsenSys 收购了它,该公司现在提供 Quorum 作为企业区块链平台。

2. 产品或服务可以提供给任何人

这甚至包括匿名或假名用户。 任何人都可以查看交易,没有访问控制。 如果你想推出一个去中心化的金融服务应用程序,你需要一个公共区块链。

许多企业家已经使用以太坊区块链平台构建了 DeFi(去中心化金融)应用程序。 以太坊为此提供了以下内容:

以太坊web开发_以太坊开发命令_以太坊dapp开发

EVM(以太坊虚拟机):这是一个去中心化的计算机。 开发者可以使用这个计算引擎来构建 DApps(去中心化应用程序)。 Solidity:是一种用于编写以太坊智能合约的语言。 智能合约是带有“If-Then-Else”语句的开源代码。 它们独立执行并根据预先定义的条件转移加密资产。 智能合约是不可变的。 他们被处决的后果是不可逆转的。 以太坊区块链开发工具:以太坊生态系统提供了IDE(Integrated Development Environment)、Test Network(测试网络)、API、部署工具等,后面会讲到。 注意:我在这里提供了 DApp 的快速概述,如下所示:

DApps 是一个网络应用程序。 您可以使用任何标准的前端开发技术来开发他们的前端。 DApp 的后端必须由智能合约组成。 DApps 在像以太坊这样的去中心化区块链网络上运行。 DApp 将数据存储在去中心化的区块链上。 为此,他们必须遵守既定的加密标准。 DApps 需要加密令牌。 您需要使用既定的加密标准来创建它。 DApp 是一个开源程序。 没有用户社区的共识,你不能改变 DApp。 没有用户控制大多数加密令牌。 2:在本指南中,我假设您将在以太坊上构建一个 DeFi 应用程序。

如何在以太坊网络上构建区块链金融服务应用程序

您需要执行以下步骤:

1.组建软件开发团队,动态加入

您将需要在以太坊的区块链开发团队中担任以下角色:

项目经理 (PM)、架构师、业务分析师、用户界面设计师、Web 开发人员、以太坊区块链开发人员、测试人员。 注意:我假设您将提供一个 Web 应用程序。 如果您打算提供移动应用程序,则需要聘请移动开发人员。

我建议如下:

聘请在领导区块链开发项目方面具有丰富经验的项目经理。 寻找可以将可扩展性指标纳入技术解决方案的架构师。 当时机成熟时,您需要一个扩展以太坊区块链应用程序的计划。 聘请对以太坊的 DeFi 生态系统有深入了解的业务分析师。 聘请 JavaScript 开发人员开发 Web 应用程序的前端。 许多 Web 开发人员都了解 JavaScript,并且拥有丰富的框架和库生态系统。 为什么我建议你以错误的方式排队? 原因如下:

您需要足够的时间来定义区块链开发项目的范围。 规划也需要时间。 您应该从添加 PM、架构师和一些业务分析师开始。 他们需要定义项目范围并收集需求。 团队还需要规划项目。 在此期间,开发人员将没有足够的工作。 区块链开发人员的成本可能非常高。 因此,当您的工作量达到一定水平时,您需要雇用他们。 在进入编码阶段之前添加其他角色。 您可以在规划阶段加入开发和测试主管。

2.定义项目范围和计划项目

让你的团队清楚你的目标。 指向你想要构建的 DeFi 类型,它应该能够做到。

什么。

以下是几种 DeFi 类型:

跨境支付应用程序:这些应用程序促进全球支付交易。 稳定币:这些是旨在维持稳定价格的加密代币。 稳定币的价格通常与美元等现实世界资产挂钩。 去中心化借贷应用程序:这些 DeFi 应用程序允许借款人直接从贷方借钱,而无需任何第三方干预。 DEX(去中心化交易所):这些是没有集中管理员的加密货币交易所。 还有许多其他类型的 DeFi。

以太坊dapp开发_以太坊开发命令_以太坊web开发

业务分析师需要与业务利益相关者交谈并收集需求。 项目经理和架构师需要规划项目,他们需要关注以下方面:

开发工具; 可扩展性解决方案; 项目任务和时间表; 资源加载; 开发、审查、测试; 其他项目管理方面,如沟通、风险管理等 3. 安装所需的开发和测试工具

现在您可以整合开发团队的其他成员。 团队需要安装和配置以下工具。

3a. 元掩码

MetaMask 是一种加密货币钱包。 它还提供了一种连接到基于区块链的应用程序的简单方法。 您可以使用它连接到以太坊区块链网络。

MetaMask 可作为浏览器扩展和移动应用程序使用。 您的开发团队需要下载浏览器扩展。

您可以在 MetaMask 钱包中购买和存储以太币 (ETH)。 为了测试您的以太坊区块链应用程序,您需要假以太币。 您可以在 MetaMask 上获取它们。

3b. 伽纳彻

Ganache 是一个区块链客户端。 您可以使用它作为更大的 Truffle 工具套件的一部分来开发以太坊 DApp。 程序员可以用它来运行测试和执行命令。

您可以使用 Ganache 用户界面。 它是一个桌面应用程序。 您还可以使用之前称为 TestRPC 的 Ganache CLI(命令行界面)。 阅读 Ganache 文档以使用它。

3c. Web3.js

Web3.js 是一个以太坊 JavaScript API。 它也是重要图书馆的集合。 以太坊区块链开发人员可以使用 Web3.js 与本地或远程以太坊节点进行交互。 使用 Web3.js 文档安装和配置它。

3d。 松露套装

Truffle 套件是用于以太坊区块链开发的工具集合。 它包括一个开发环境和测试框架。 您可以使用 Truffle 部署以太坊智能合约,并且有大量关于 Truffle 的文档。

注4:开发以太坊DApp需要使用更多工具。 但是,您不需要安装它们。 这些工具如下。

以太坊web开发_以太坊开发命令_以太坊dapp开发

Remix IDE(集成开发环境):您需要使用 Remix IDE 来编写 Solidity 智能合约。 它是一个 DApp,因此,您无需安装它。 Ropsten:这是一个用于测试以太坊智能合约的testnet(测试网络)。 您需要使用假以太币来测试 Ropsten 上的智能合约。 4.配置工具

您现在需要配置工具。

注 5:我建议您阅读两篇有关如何配置这些以太坊区块链开发工具的详细文章。 Alex Miller 写了第一个 ( )。 这是一份关于以太坊 DApp 开发的指南。 我称之为“参考文章 1”。 Merunas Grincalatis 撰写了第二篇 ( ),这是将 Web 应用程序转换为 DApps 的指南。 我们称之为“参考条款 2”。

请执行下列操作:

4a. 配置 MetaMask 加密钱包和浏览器扩展

您需要执行以下步骤。

创建一个帐户并保护您的密钥。 在“开发者模式”下连接到以太坊区块链。 建立与 Ropsten 测试网的连接。 使用 MetaMask 指南和“参考文章 2”了解更多信息。 4b. 配置 Ganache、Web3.js 和 Truffle

按照以下步骤配置 Ganache、Web3.js 和 Truffle。

阅读 Ganache 的 GitHub 文档() 来配置它。 打开 Ganache 实例。 按照 Web3.js ( ) 的“入门”指南进行配置。 阅读 Truffle docs() 来配置它。 有关更多指导,请参阅“参考文章 2”( )。 5.设计开发DApp前端

安装和配置工具后,就可以开始编码了。 首先设计和开发DApp的前端。 做好以下工作。

遵循既定的用户界面 (UI) 设计指南。 使用 JavaScript、HTML 和 CSS 开发用户界面的前端。 或者,您可以使用前端 Web 框架,例如 Angular 或 React.js。 6. 编写智能合约

现在是编写智能合约代码的时候了,它们是后端的构建块。 采取以下步骤。

6a. 查看相关的智能合约以获得有用的想法

以太坊 DApp 开发项目是开源的。 软件工程师可以审查其他项目的智能合约以获取想法是一个优势。

您还可以查看相关项目的智能合约。 选择一个和你的类似的 DApp 项目,例如:

以太坊开发命令_以太坊web开发_以太坊dapp开发

如果您打算构建稳定币,请查看 Dai 稳定币 ( ) 智能合约。 如果想创建DeFi协议,研究一下Uniswap DeFi协议的智能合约()。 如果你打算建立一个去中心化的借贷平台,请查看 Aave Protocol 的智能合约 ()。 6b. 编写智能合约

使用 Remix IDE 编写智能合约代码。 我建议您保持代码简单。 我这样说是出于以下原因。

成本:具有复杂逻辑的智能合约需要更多的计算。 如果你的智能合约有复杂的处理逻辑,你将支付更多的“gas fee”。 通过保持逻辑简单,您可以控制成本。 维护:调试具有复杂处理逻辑的智能合约更难。 您可以通过保持逻辑简单来提高智能合约的可维护性。 很好地记录您的智能合约并使用 Truffle 来管理它们。

7.实施结构化的智能合约审计流程

您需要对您的智能合约进行彻底的审计。 请记住,您无法在部署智能合约后对其进行修改,这使得测试和代码审查变得更加重要。

但是,测试无法发现所有错误。 这使得智能合约的代码审查变得非常重要。 如果您实施结构化代码审查流程,您可以更早地发现错误。

在任何项目中都很难找到经验丰富的代码审查员。 以太坊 DApp 开发项目涉及小众技能,因此,可能更难找到专业的审核人员。

有足够的预算。 计划您聘请独立智能合约审计员的准备时间。

经验丰富的智能合约审计师应关注以下几点:

7a. 进行结构化智能合约审计

智能合约审计不应该是临时的。 独立审查员应遵循系统的方法。 他们需要做以下事情:

审核员应坚持获取源代码的锁定版本。 考官必须对项目有透彻的了解。 他们需要系统地审查项目文件。 专业合同审查员应进行初步代码审查。 应该遵循静态代码分析。 审查者应该进行代码质量分析。 审计员应该寻找已知的智能合约漏洞。 他们应该分析代码以查看它是否提供了正确的功能。 审阅者应确定代码优化机会。 智能合约审计员应跟踪所有问题并系统地报告。 您需要确保关闭在智能合约审计中发现的任何问题。

7b. 识别已知的智能合约漏洞

审查人员应该留意已知的智能合约漏洞。 以下是突出的智能合约漏洞的示例:

重入:这也称为“递归调用漏洞”。 当外部智能合约调用可以对调用合约进行新调用时,就会发生这种情况。 访问控制:访问控制问题影响各种软件系统。 当智能合约实现允许特权参与者采取单方面行动的功能时,就会出现这个问题。 例如,特权用户可以从合约中提取资金。 算法错误:程序员可能会在智能合约中对无符号整数进行编码。 这可能会导致诸如“整数溢出”和“整数下溢”之类的错误。 智能合约可能不会检查低级调用的返回值。 Solidity 允许低级函数调用。 在执行期间,这样的调用可能返回布尔值“false”。 不对此进行检查的智能合约将继续运行。 这会造成漏洞。 “拒绝服务”(DoS):黑客可以通过审查智能合约并发现漏洞来发起 DoS 攻击。 以“for”循环为例。 黑客可以向此类智能合约中输入过多的数字。 以太坊网络与 gas 相关的限制将阻止此类合约迭代这么多次。 因此,智能合约将停止运行。 黑客可以发起不同类型的 DoS 攻击以太坊web开发,以永久阻止智能合约的运行。 错误编码的函数生成随机数。 黑客可以使用 Solidity 中的函数和变量来创建随机数。 他们可以预测将由智能合约创建的随机数。 然后黑客可以操纵 DApp。 抢先交易:智能合约可能会发布敏感信息。 黑客可能会复制它并以更高的费用提交交易。 这将优先处理交易,黑客将有机会操纵系统。 8.测试智能合约

以太坊dapp开发_以太坊web开发_以太坊开发命令

您现在需要测试您的智能合约。 应在一开始就创建一个全面的测试计划。 测试计划应该有足够的测试用例来覆盖智能合约的所有路径和分支。 您需要对测试计划进行结构化审查。

然后,执行以下操作:

使用 MetaMask 购买假以太币。 为此,请访问 MetaMask 上的测试以太坊水龙头。 您已将 MetaMask 连接到 Ropsten。 检查连接是否仍然打开。 导航到 Remix IDE。 使用相关菜单选项将您的智能合约部署到 Ropsten。 使用 MetaMask 确认此操作。 根据您的测试计划,测试智能合约。 9.部署智能合约

现在您已经测试了您的智能合约,您需要部署它们。 请执行下列操作:

从 Binance 等加密货币交易所购买真正的以太币。 将它们存储在您的 MetaMask 钱包中。 您需要真正的以太币才能在以太坊主网上部署智能合约。 检查 Ganache 实例以确保它仍在运行。 导航到松露。 导航到您组织智能合约的 Truffle 目录。 使用“truffle deploy”命令将您的智能合约部署到以太坊主网。 部署后记下智能合约地址。 10. 将您的智能合约连接到 Web 应用程序的前端

您已经编写了 Web 应用程序的前端代码,现在您需要将智能合约连接到它。 请采取以下步骤:

在您选择的 IDE 中打开 Web 应用程序项目。 创建一个空文件并将其命名为“web3.min.js”。 您将需要此文件在 Web3.js 的帮助下将智能合约连接到前端。 访问 GitHub 上的 Web3.js ChainSafe 存储库。 复制“web3 最小代码”。 将整个代码粘贴到您在 Web 应用程序项目中创建的 web3.min.js 文件中。 保存 web3.min.js 文件。 将其导入到您的 Web 应用程序项目的主 HTML 文件中。 11. 初始化你的智能合约

您现在需要初始化已部署的智能合约。 这涉及以下步骤:

11a. 获取合约 ABI(应用程序二进制接口)

以太坊使用称为 ABI 的数据编码方案与智能合约进行通信。 执行以下操作以获取 ABI:

导航到 Remix IDE 的“编译”选项卡。 导航到 ABI 部分并在文本文件中记下 ABI 信息。 您需要清理 ABI 信息。 它是 JSON 格式,并且有空格。 使用 JSON minify 删除空格。 为此,将 ABI 信息粘贴到 JSON 缩小面板上。 然后,单击“JSON 缩小”按钮。 复制输出数据。 将其粘贴到代码中的“const contractABI”变量中。 11b。 获取合约地址

导航到 Remix IDE 的“运行”选项卡。 获取合约地址,并将其粘贴到代码中名为“const contractAddress”的变量中。

11c。 更新 Web 应用程序的各种功能以使用智能合约

您已经为 DApp 中的不同功能编写了智能合约。 您使用 JavaScript 编写了前端代码,现在您需要使用相应的智能合约更新这些功能。

请执行下列操作:

为每个智能合约创建一个合约实例。 使用相应的“const contract ABI”和“const contractAddress”变量更新它。 打开函数的 JavaScript 文件。 使用函数的合约实例代码更新它。 对所有函数重复此步骤。总结

我已经介绍了用于构建金融服务应用程序的不同类型的区块链网络,您可以选择最适合您需求的一种。 我还介绍了如何使用以太坊区块链平台构建去中心化的金融服务应用程序,以及如何构建自己的基于区块链的金融服务应用程序。 祝你的项目好运。