当前位置: 首页 > 知识库问答 >
问题:

应该有具有相同业务逻辑和不同配置的单独智能合约,还是一个具有所有配置的主智能合约

云霖
2023-03-14

假设双方之间有一份合同,允许根据某些业务逻辑将一些资金(最初与我一起)转移给双方,例如80%的资金转移给a,20%的资金转让给B。现在,对于不同的一方对X,这些百分比是不同的

共有1个答案

班宏毅
2023-03-14

像这样的体系结构问题很难回答,因为这些决策涉及的内容很多,提供的信息非常有限。采取的路径将取决于您需要实现的业务逻辑的复杂性、合同中持有金额的风险、双方之间合同的频率/数量、运营预算和预期利润。举一些极端的例子,如果我在区块链上设置购房代管,我会让每笔交易都成为自己的合同(即使不同交易的条款可能类似)。如果我正在构建一个每天执行的彩票合同,我会将区块链上所有彩票的主合同。在另一个例子中,如果我要建立一个支持多种游戏类型的赌博业务,我可能会有一个主合同,跟踪所有活动,然后委托给特定于游戏的合同。

话虽如此,我在自己的项目中也遇到过类似的情况。我通常会从个人合同开始,但发现这通常不具有成本效益。合同部署是非常昂贵的操作,我的大多数用例都不像“买房子”的例子。我最终会把我的个人合同汇总成一个结构,并有一个主合同。从您提供的有限信息来看,您可能陷入了同样的情况。但是,再说一遍,如果没有一组业务需求摆在我面前,很难给出一个明确的答案。我能给你的最好的(免费的)建议是尝试分析你的情况,超越传统的面向对象思维模式,并从商业角度来看待它。

 类似资料:
  • 在可升级智能合约的背景下,什么时候应该使用接口,什么时候应该使用库?我阅读了几个类似的问题和博客文章,但都没有给出直截了当的答案: (子)合同vs.库vs.结构vs.接口 如何改进智能触点设计,以便区分同一领域对象的数据及其操作功能 编写稳定的可升级合同 界面使您的Solidity合约可升级。 Solidity中的库驱动开发 Solidity中的代理库 探索Solidity中的代码重用 我知道在设

  • 智能合约有效性 使用此方法,可能希望确定所加载的合约地址是你所期望的智能合约。为此,你可以使用isValid合约方法,只有在合约地址中部署的字节码与智能合约封装包中的字节码匹配时才会返回true。 contract.isValid(); // returns false if the contract bytecode does not match what's deployed

  • 在Springboot中有两个不同的@RestController使用不同的MappingJackson2HttpMessageConverter吗?...或者MappingJackson2HttpMessageConverter对于Spring Boot应用程序中的所有@RESTController是通用的吗? 基本上,目标是使用不同的MappingJackson2HttpMessageConv

  • 我在apache Web服务器上有两个虚拟主机。它们中的每一个都有一个文档根: 我设置了一个php fpm,现在我想为每个fpm设置不同的open_basedir。我搬走了 然后创建了两个php。不同文件夹中的ini。然后,我在ini vhost配置文件中添加了以下代码: 但是当我得到时,一切都与以前不同。我想我错过了什么!如何强制php fpm获取这两个php。每个虚拟主机的ini?

  • 问题内容: 我创建了一个小部件,该小部件显示一个简单的textview,可在配置活动中将其作为Edittext编辑。我将输入的文本与共享的首选项一起保存,因此用户可以点击小部件来编辑文本,并且已经输入的文本将出现在edittextfield中。我的问题是这个。我希望用户能够添加多个窗口小部件,但是当添加第二个窗口小部件时,将从共享首选项中加载与其他窗口小部件中相同的文本。并且,当在widget上被

  • 指导编写一个EOSIO的智能合约 模块 Account API 查询账户数据的API. Chain API 查询链内部状态的API. Database API 存储和检索EOS.IO区块链的数据API根据以下广泛结构来组织数据. Math API 定义常用的数学函数. Action API 定义用于查询操作属性的API. Memory API 定义常用的记忆功能. Console API 使应用程