blockchain - 外部方访问智能合约(区 block 链)

标签 blockchain smartcontracts

那么,如果 A 和 B 共同拥有一个关于某些服务的智能合约,外部方 C 如何获得读取/写入该合约的权限?

  • 签约时是否需要将契约(Contract)设置为“public”?
  • A 或(/和?)B 可以在签署后将契约(Contract)的访问权授予 C 吗?
  • 还有其他方法吗?

最佳答案

基本上,公共(public)分类账上的所有智能合约都是公共(public)。这取决于您部署合约的区 block 链平台。通常,要访问它们,您需要满足以下条件。

  1. 一个界面。例如,在以太坊中你需要 application binary interface .由于链上的合约以二进制格式存储,您需要知道如何访问它们的功能。在大多数情况下,ABI 是可用成员和函数的 JSON 描述。
  2. 一些访问规则。一般来说,正如我最初所说的,所有状态都是公开可读的,所以如果 AB 创建一个与 someService 的契约(Contract),C 就能读出状态。如果你想允许 C 写访问,你需要在创建合约时明确告知(例如,通过静态白名单他的公钥)或者你可以维护一个动态的访问者列表,其中只有 AB 可以设置。

除非您说明您最喜欢的平台或合约语言,否则我认为这是我能给出的最具体的答案。

关于blockchain - 外部方访问智能合约(区 block 链),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390264/

相关文章:

blockchain - 无法调用智能合约中的函数

analytics - 用于以太坊智能合约分析的工具/服务

使用安全帽通过 Uniswap 流动性配置测试代币

javascript - 如何浏览模块 ethereumjs-tx?

java - Hyperledger Fabric V1.0

Java Hyperledger-panic : runtimr error: invalid memory address or nil pointer dereference

blockchain - Waves平台的智能账户和智能 Assets 有哪些类型的交易?

blockchain - 智能合约可以访问其他区 block 链的数据吗?

swift - 如何从 Swift 应用程序与部署在区 block 链上的智能合约进行交互

python - bsc 通过钱包地址获取交易 Web3.py