Как инициализировать узел с данными - PullRequest
0 голосов
/ 06 января 2019

Как я могу инициализировать узел с данными?

Давайте возьмем приложение bootcamp в качестве примера. Там вы можете выдавать токены другим сторонам.

Я хочу расширить это и проверить, имеет ли отправляющий узел токены в первую очередь. Только если у него есть токены, он может передать их другой стороне.

Проблема в том, что у отправителя нет жетонов. Как я могу установить определенное количество токенов для отправителя? Есть ли другой способ, кроме самостоятельной выдачи токенов первым?

1 Ответ

0 голосов
/ 07 января 2019

Нет встроенного способа инициализации узла с уже выполненными определенными транзакциями.

Вместо этого вам нужно написать небольшой клиент, который вы будете выполнять после создания узла, чтобы автоматически выполнять транзакции, которые вы хотите. В случае Bootcamp CorDapp вы могли бы написать что-то вроде:

public class Client {
    private static final Logger logger = LoggerFactory.getLogger(Client.class);

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        // Create an RPC connection to the node.
        if (args.length != 3) throw new IllegalArgumentException("Usage: Client <node address> <rpc username> <rpc password>");
        final NetworkHostAndPort nodeAddress = parse(args[0]);
        final String rpcUsername = args[1];
        final String rpcPassword = args[2];
        final CordaRPCClient client = new CordaRPCClient(nodeAddress);
        final CordaRPCOps proxy = client.start(rpcUsername, rpcPassword).getProxy();

        // Issue the tokens.
        Party owner = proxy.nodeInfo().getLegalIdentities().get(0);
        int amount = 100;
        proxy.startFlowDynamic(TokenIssueFlow.class, owner, amount).getReturnValue().get();
    }
}
...