Я настроил сеть Hyperledger Fabric с четырьмя узлами на этапе разработки, и я хочу знать, есть ли способ передать чейн-код nodejs (для установки) производственной команде, не раскрывая исходный код (чейн-код), что-то вроде jar-файл в java-проекте. Поможет ли мне упаковка чейнкода? Если нет, то какой смысл упаковывать чейнкод, если мы можем напрямую установить чейнкод без упаковки.
Из всего, с чем я столкнулся (работа с чейнкодом Go):
1) Нет. Двоичный файл чейнкода нельзя установить напрямую, не имея исходного кода. Таким образом, вы не можете распространять двоичный файл или банку чейнкода.
2) Упаковка не поможет вам скрыть исходный код. Даже после того, как одна личность подписывает и упаковывает чейнкод, другие должны иметь возможность просматривать и добавлять свои подписи к этому уже подписанному пакету. Это используется для установления «владельцев» чейнкода, а также для обеспечения того, чтобы все необходимые «владельцы» чейнкода подписали его, как определено в политике создания экземпляра чейнкода.
Из документов: Ссылка: https://hyperledger-fabric.readthedocs.io/en/release-1.4/chaincode4noah.html#packaging
Пакет состоит из:
a) ChaincodeDeploymentSpec or CDS
b) Instantiation policy
c) Signatures
Подписи служат для следующих целей:
a) To establish an ownership of the chaincode.
b) To allow verification of the contents of the package.
c) To allow detection of package tampering.
Итак, на мой взгляд, упаковка помогает в:
a) Identifying the owners of the chaincode (through signatures).
b) Allowing instantiation of chaincode only when the package has necessary signatures as defined in instantiation policy. This ensures all chaincode owners have reviewed and signed the package.
Эта ссылка показывает, что путь к коду цепочки является обязательным, а передача упакованного кода не является обязательной. ткань-sdk-node.github.io/release-1.4/… . Поскольку передача пакета необязательна, а исходный код обязателен, мне также интересно, в чем его польза?