云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云主机_香港虚拟主机99idc_9元

小七 141 0

我最近偶然发现了一篇关于使用SideDB存储私有数据的SAP帮助文章,并决定尝试一下所描述的功能。事实证明,云服务器报价,本文中提供的示例代码是为Hyperledger Fabric v1.2创建的,实际上可以简化为SAP云平台上的当前版本1.3。

让我们仔细看看。

为了获得任务的正确上下文,请看一下这个文档,它解释了私有数据的术语和用例。在这个博客中,我们只想创建部署在SAP云平台上的服务的我们自己的实现,它将保存和检索在临时字段中传递的私有数据。我们还要检查如何配置对私有数据的访问。

正如您在前面提到的原始文章中所看到的,私有数据的访问控制逻辑必须由开发人员自己实现。尽管开发人员还必须描述集合中组织的访问-配置.json

根据v1.4发行说明,Hyperledger Fabric service能够根据集合自动执行访问控制-配置.json仅定义

但是,部署到SAP云平台的当前Hyperledger结构服务版本是1.3。尽管如此,v1.3仍然支持不同组织之间的私有集合分离。

让我们通过删除SAP帮助示例中提供的隐式代码检查来检查它。

为了检查功能,我使用了一个试用的Hyperledger Fabric服务实例。我还在存储库中发布了代码。因此,您可以使用您的SAP云平台帐户克隆和部署项目并使用设置。

文件和文件夹结构与以前保持不变:

我已删除中集合的权限检查主菜单.go只留下通道和集合的读/写方法:

如您所知,手机网站自助建站,集合的私有数据通过临时字段传递,大数据分析培训课程,并通过GetTransient方法检索。

集合由GetPrivateData和PutPrivateData方法读写,如下:

在定义集合之前,让我们看看Hyperledger Fabric试用实例可用的区块链网络:

正如我们所看到的,"开发"计划只提供网络中的单个"开发虚拟机"组织。我们将在下面几行的配置中使用它。

为了说明私有数据的用法,让我们在集合中创建两个集合-配置.json:

在这里,名为"collection1"的第一个集合具有以下属性:

"policy"和"memberOnlyRead"仅定义"devsp"组织成员的集合可访问性。"requiredPeerCount"属性设置为"0",这意味着不需要将私有数据分发给其他对等方。这个设置对于我们的场景并不重要。"maxPeerCount"设置为"2",以指示有多少对等方将冗余地保留数据。这对这个案子也没什么意义。"blockToLive"值设置为"3",以测试在随后的3次账本调用后记录是否被清除(我们将在下面检查此选项)。

第二次集合"collection2"具有类似的设置,其中最重要的设置是"policy"。我们已经将"collection2"分配给一个不存在的组织"devsp2",只是为了检查我们是否可以作为组织"devsp"的成员访问它。"blockToLive"值设置为"0",这意味着集合项将无限期地保留在私有数据库中。

我们将链码部署为zip存档,包括src文件夹在内的以下文件:

集合-配置.json当链码被实例化时,文件在安装之后被单独添加到网络中或升级。请看下面的屏幕截图:

一旦初始安装,它可以被实例化:

并且提供了集合配置:

所以现在我们得到了下面突出显示其Id的实例:

让我们看看它是如何工作的。

所以现在我们可以跳转到SAP API集线器并在那里登录。一旦配置了API调用环境,就可以按照下面的屏幕截图执行服务调用(请参阅我之前博客中的步骤2以快速参考)。

让我们通过"value"瞬态字段发布一些虚拟的"test value":

收到的响应是"200":

使用的有效负载:

旁注。如果您将两个JSON对象作为参数和临时对象传递,您的负载将如下所示:

让我们读取私有数据的内容:

成功返回记录的伪值:

现在如果再按三次Execute按钮,第四次调用时数据将变得不可用。这是因为"blockToLive"属性值在集合定义中设置为"3"。实际上,这意味着私有数据将仅在3个后续区块链事务(新创建的块)中存在于side db中,之后将被清除。查询API调用不会在分类账上创建新的事务,因此,云端服务器,如果未删除私有数据值,可以无限次执行以返回它们。

如您所知,我们在集合中定义了"collection2"-配置.json文件。该集合与不存在的组织"devmp2"相关联。不幸的是,我们不能在试用帐户下转换我们的组织。作为"devsp"的成员,我们试着读写两个属于"collection2"的私有数据样本

从理论上讲,积分返现,我们不应该被允许对集合执行任何操作。但是,使用以下有效负载的"writeCollection"调用成功:

一旦我们尝试读取同一段私有数据,访问将被禁止。

我们只能看到属于不同组织的私有数据的公共哈希,这正是我们希望看到的:

这实际上证明了我们最初的说法,即对私有数据的访问可以由集合配置控制,而无需在链码中写入显式的访问控制逻辑。