如何编写Corda流以最小化检查点的大小

时间:2018-07-19 12:51:11

标签: corda

Corda在various operations之前流动检查点。如何编写流以最小化检查点大小并改善流运行时间?

1 个答案:

答案 0 :(得分:1)

通过保持最小的调用堆栈来减少检查点的大小,因为执行堆栈中范围内的所有内容都将被序列化到检查点中。

减少调用堆栈的一种方法是将没有挂在未标记为@Suspendable的辅助函数中的所有操作排除在外。

例如,假设我们写:

@Suspendable
fun asd() {
  val something = computeSomething()
  val somethingElse = lol(something)
  sendAndReceive(bla)
}

在这种情况下,somethingsomethingElse将位于检查点中。因此,我们应该这样写:

@Suspendable
fun asd() {
  helper()
  sendAndReceive(bla)
}

fun helper() {
  val something = computeSomething()
  val somethingElse = lol(something)
}

somethingsomethingElse将不在检查点中。