首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从字符串创建Party对象?

如何从字符串创建Party对象?
EN

Stack Overflow用户
提问于 2017-11-26 21:54:17
回答 2查看 1.8K关注 0票数 4

给定mystring = "O=PartyB,L=New York,C=US",有没有一种简单的方法可以将字符串转换为真实的Party对象?一直在看CordaRPCOps.wellKnownPartyFromX500Name()但不能让它起作用..。已经尝试了以下几种变体:

代码语言:javascript
运行
复制
val rpcOps = new CordaRPCOps()
val otherParty: Party = rpcOps.wellKnownPartyFromX500Name(partyString) ?: throw Exception("Party not recognised.")
EN

回答 2

Stack Overflow用户

发布于 2017-11-27 09:33:59

有几种方法可以做到这一点:

将字符串解析为X500名称

代码语言:javascript
运行
复制
val x500Name = CordaX500Name.parse("O=PartyB,L=New York,C=US")
val party = rpcOps.wellKnownPartyFromX500Name(x500Name)

直接构造X500名称

代码语言:javascript
运行
复制
val x500Name = CordaX500Name(organisation = "PartyB", locality = "New York", country = "US")
val party = rpcOps.wellKnownPartyFromX500Name(x500Name)

模糊匹配

代码语言:javascript
运行
复制
val matchingParties = rpcOps.partiesFromName("PartyB", false)
if (matchingParties.size != 1) {
    throw IllegalArgumentException()
}
val party2 = matchingParties.single()

获取CordaRPCOps实例

下面是一个如何首先获得CordaRPCOps实例的示例:

代码语言:javascript
运行
复制
val rpcAddress = NetworkHostAndPort(host, rpcPort)
val rpcClient = CordaRPCClient(rpcAddress)
val rpcConnection = rpcClient.start(username, password)
val cordaRPCOps = rpcConnection.proxy
票数 11
EN

Stack Overflow用户

发布于 2019-05-18 13:30:32

您也可以在不使用CordaRPCOps的情况下获得Party实例。但是,该解决方案要求您能够访问ServiceHub实例。这意味着您可以从CordaService访问它。假设serviceHub是一个CordaService实例。然后,尝试以下步骤:

代码语言:javascript
运行
复制
val x500Name = CordaX500Name.parse("O=PartyB,L=New York,C=US")
val party: Party? = serviceHub.networkMapCache.getPeerByLegalName(x500Name)

如果您需要Corda服务中的Party实例来自String,这将非常方便,因为在Corda服务中不需要创建RPC连接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47501407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档