Как вручную сгенерировать параметры сети в Corda - PullRequest
0 голосов
/ 18 апреля 2019

Я вручную создал и распространил необходимые сертификаты для узлов Corda. Теперь для запуска узлов, помимо прочего, они должны иметь сетевой параметр. Проблема заключается в том, что если я использую инструмент сетевой загрузки Corda для генерации параметра сети, файл будет подписан другим эмитентом ("C = Великобритания, L = Лондон, OU = шнур, O = R3, CN = Корд узел Root CA "), который отличается от эмитента моих сертификатов. У меня вопрос, как я могу вручную создать сетевой параметр, чтобы я мог указать правильного эмитента, чтобы избежать конфликтов во время запуска узла?

enter image description here

Ответы [ 2 ]

1 голос
/ 27 мая 2019

Итак, я нашел способ создания сетевых параметров:

private fun getSignedNetworkParameters(): NetworkParameters {

        //load the notary from a Keystore. This avoids having to start a flow from a node in order to retrieve NotaryInfo
        val notary = loadKeyStore("\\path-to-keystore\\keystore.jks", "keystore-password")

        val certificateAndKeyPair : CertificateAndKeyPair = notary.getCertificateAndKeyPair("entry-alias", "entry-password")
        val notaryParty = Party(certificateAndKeyPair.certificate)
        val notaryInfo = listOf(NotaryInfo(notaryParty, false))

        //map contract ID to the SHA-256 hash of its CorDapp contracts&states JAR file
        val whitelistedContractImplementations = mapOf(
                TestContract.TEST_CONTRACT_ID to listOf(getCheckSum(contractFile))
        )

        return NetworkParameters(minimumPlatformVersion = 3, notaries = notaryInfo,
                maxMessageSize = n, maxTransactionSize = n, modifiedTime = Instant.now(),
                epoch = 1, whitelistedContractImplementations = whitelistedContractImplementations)
    }
1 голос
/ 23 апреля 2019

Вы можете подписать свои сертификаты сертификатом разработки, который используется сетевым загрузчиком: https://github.com/corda/corda/tree/master/node-api/src/main/resources/certificates

Если это не работает для вас, вы можете попробовать этот экспериментальный инструмент: https://github.com/corda/corda/blob/master/experimental/netparams/src/main/kotlin/net.corda.netparams/NetParams.kt. Я не могу обещать, что он работает с Corda 3.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...