【问题标题】:How to display the created flow on corda如何在corda上显示创建的流
【发布时间】:2020-05-28 03:33:59
【问题描述】:

当我创建流程时,它们不会出现在流程列表中。我需要在 cordapp 模块中创建它们吗?项目构建正常。

项目架构1

【问题讨论】:

  • 可以分享源代码吗?根据这些图片,我看不出有什么问题。
  • 发现我在deployNodes中没有写cordapps的块。告诉我流是否与服务器在同一个模块中,如何在cordapps中注册路径。 Build.gradle -> task DeployNodes -> node -> cordapps = ["what are there to write"]
  • 我不相信这是问题所在。 CorDapp 是否出现在节点的cordapps 文件夹中?

标签: corda


【解决方案1】:

因此,如果没有源代码,我们就无法真正知道它为什么不出现在列表中。

值得一提的是,还有一些不为人知的错误,我怀疑您在这里遇到的是您的代码没有覆盖progressTracker。

注意这里的文档:

流程无法运行,除非它们覆盖进度跟踪器

所以请记住,这可能会导致您的问题。

这是一个来自corda github上的yo cordapp的progressTracker示例。

public class YoFlow extends FlowLogic<SignedTransaction> {
    private static final ProgressTracker.Step CREATING = new ProgressTracker.Step("Creating a new Yo!");
    private static final ProgressTracker.Step SIGNING = new ProgressTracker.Step("Signing the Yo!");
    private static final ProgressTracker.Step VERIFYING = new ProgressTracker.Step("Verfiying the Yo!");
    private static final ProgressTracker.Step FINALISING = new ProgressTracker.Step("Sending the Yo!") {
        @Nullable
        @Override
        public ProgressTracker childProgressTracker() {
            return FinalityFlow.tracker();
        }
    };

    ProgressTracker progressTracker = new ProgressTracker(
            CREATING,
            SIGNING,
            VERIFYING,
            FINALISING
    );

    @Nullable
    @Override
    public ProgressTracker getProgressTracker() {
        return progressTracker;
    }

    private final Party target;

    public YoFlow(Party target) {
        this.target = target;
    }

    @Suspendable
    @Override
    public SignedTransaction call() throws FlowException {
        progressTracker.setCurrentStep(CREATING);

来源:文档限制页面:https://docs.corda.net/docs/corda-os/4.4/shell.html#limitations

【讨论】:

    猜你喜欢
    • 2020-08-31
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多