最近,我一时兴起,想做一个与自动售货机有关的分散式应用程序。简单来说,它是自动售货机的信任帐户。我们知道自动售货机是用来卖东西的。既然卖东西,就需要一个分类帐。那么为什么要信任分类帐呢?因为操作自动售货机通常需要多方参与。在我的应用场景中,不仅有自动售货机的运营商,而且还有自动售货机的制造商,商品供应商和场地租赁商。此外,每一方将定期获得相应的利润分成。因此,我需要以每个人都信任的方式保留帐户。那么,为什么不使用现有数据库呢?因为数据库中的数据很容易被篡改。但是区块链是不同的。因为区块链本质上是一个分布式的,不可篡改的,高度透明的计费系统,可以提供一种低成本的信任方法,即机器信任。由于这种信任机制,我们可以保证我们图书的真实性,并确保每一方都能公平地获得自己的利润。因此,我们需要区块链为我们提供信任分类账。上面的讨论实际上是为了回答在开发DApp之前我们需要清楚思考的第一个问题-为什么使用区块链?尽管区块链的概念越来越流行,但我们不能盲目跟风。因为我们目前拥有许多可以轻松解决我们生活中问题的完整和成熟的技术。因此,我们必须清楚为什么我们的应用程序使用区块链。如前所述,我的自动售货机项目需要区块链来解决信任问题,而这个问题只能通过区块链轻松解决。第二个问题是,我的DApp的哪些部分需要使用区块链,哪些部分需要使用传统方法?换句话说,我们必须清楚地想到要放在链上的哪些部分以及要放在链上的哪些部分。由于当前区块链的开发成本较高,因此在刀下使用优质钢材。我们将在最关键的部分使用区块链,其他事情将以传统方式完成。就我的项目而言,因为我需要一个区块链来确保自动售货机的分类帐不被篡改,所以我只需要完成链上的簿记,即记录数据的步骤。至于如何生成账单并将其提交给相关方,则通过链下方法解决。第三个问题,我是否需要发送指向我的DApp的链接?还是我想在原始链上开发应用程序,还是考虑跨链?这个问题取决于我们的项目设计和规划。因为这是一个全新的项目,所以我计划使用自己的链来开发它。最后一个问题,我需要创建一个钱包吗?在Forge中,钱包的概念与帐户相同,后者是链上所有动作的发起者或接收者。另外,我还要说一件事。我们Forge中的所有动作都称为“交易”。 [2]。英文的直译是“交易”,而免费翻译可以理解为交易。它是链上最小的活动单位。在我的自动售货机项目中,我希望通过自动售货机的帐户在链上发送账单信息,并且该账单的记录将在相关方的分类帐中。因此,我需要为每个自动售货机和每个关联方创建一个钱包帐户。在考虑了以上四个问题之后,我们可以开始对自己的DApp进行建模。让我向您介绍我的模型。我的自动售货机DApp包含以下三个部分:•账单生成,•账单记录,•和账单演示。账单的生成是指模拟现有的自动售货机系统并随机生成账单信息。账单的记录是通过自动售货机的钱包帐户将这些数据发送到连锁店。最后,账单的呈现方式是检索链上的数据,并在链下集成后将其显示在PC平台上。因此,我的第一部分和第三部分主要依靠脱链技术,而第二部分(账单记录)是在链上的。这部分通常是最不熟悉的区域,也是我上周主要处理的部分。正如我们前面提到的,链上的所有动作都称为事务。创建一个钱包被视为一项交易,转移资金则被视为一项交易。那么我们如何定义交易呢?事务定义是通过事务协议[3],事务协议或智能合约来完成的。 Forge开发框架为开发人员提供了许多常见的交易协议,例如钱包创建,转移,资产交换等。同时