如何从oracle corda服务生成唯一ID

时间:2018-05-22 07:26:18

标签: corda

我有一个Corda州说员工和我需要生成员工ID。 有谁请让我知道如何通过corda oracle服务生成这个?

1 个答案:

答案 0 :(得分:1)

Oracle可能有一个原子计数器,每次分配一个员工ID时都会递增。

你应该把这个柜台放在哪里?

  • 你不能把它放在流中,因为流是短暂的,不共享状态
  • 相反,您需要将计数器放在服务中。 Corda服务是一个长期存在的对象,在节点启动时实例化,并允许在流之间共享状态

您可以按如下方式定义服务:

@CordaService
class Oracle(val services: ServiceHub) : SingletonSerializeAsToken() {
    private val counter = AtomicInteger(0)

    val employeeId
        get() = counter.getAndIncrement()
}

您将使用以下方法检索流中的员工ID:

serviceHub.cordaService(Oracle::class.java).employeeId