corda - 实施白名单的正确方法
问题描述
我是 Corda 的新手,对如何在 Corda 中正确实施白名单有疑问。
让我们假设在 Corda 上发行了一个可替代的证券代币,它必须满足某种规定(例如,不允许投资者来自某个国家)。因此,需要一个白名单来确保满足所有法规要求。
在私有网络中,我假设不需要实际的白名单,因为运行节点的发行者可以控制谁被允许加入网络,谁不被允许。但是在公共 Corda 网络上,可能有许多身份不允许持有某种类型的令牌,因此需要一个白名单。
对于此类问题,正确的设计选择是什么?我考虑过拥有一个WhitelistState
包含所有白名单投资者的集合。但如果我理解正确的话,如果从白名单中添加或删除了新的投资者,则状态的每个参与者(在这种情况下是发行人和投资者)都必须签署交易,这不是一个合适的解决方案。
我将不胜感激有关如何解决此类问题的任何有用建议!
解决方案
查看blacklist
示例 repo 中的项目:
https ://github.com/corda/samples/tree/release-V4/blacklist
基本上他们做了什么:
1. 他们在里面ReachAgreementFlow
添加了一个附件到交易中,这个附件是一个包含文件的 jarblacklist.txt
文件。
2. 在状态合同AgreementContract
(验证交易)中,他们提取罐子并阅读其内容,并确保协议中列出的公司不在黑名单中。
推荐阅读
- python - 合并熊猫中的两个数据集时释放内存
- python - 使用 Selenium 不使用 API 将图像发布(上传)到 Instagram
- neo4j - 向数据库添加新节点,如何自动更新基于规则的链接
- reactjs - ReactJS 动态添加 onClick 事件
- sql - SQL Server - 按列排序而不选择该列
- laravel - Eloquent:如何在不删除任何内容的情况下同步一对多关系(FK 可以为空)?
- .net - .NET/ISS 应用程序不显示 jqwidget 图标或任何相关图标
- python - 从列表中删除相似的项目
- mysql - 为什么我的 SQL 存储过程在没有结果时会报错?
- eclipse - 无法运行 gradle 任务