Включает ли maxTransactionSize, установленный в NetworkParameters, вложения? - PullRequest
0 голосов
/ 16 мая 2019

Включает ли maxTransactionSize, установленный в NetworkParameters, вложения?

У меня возникла ситуация, когда мне нужно отправить большой файл в виде вложения, и я хочу убедиться, что он меньше, чем maxTransactionSize, поддерживаемый параметрами сети.

1 Ответ

0 голосов
/ 16 мая 2019

maxTransactionSize включает вложения при расчете.

Если вы хотите взглянуть на себя, расчет выполняется в - WireTransaction.checkTransactionSize: https://github.com/corda/corda/blob/master/core/src/main/kotlin/net/corda/core/transactions/WireTransaction.kt

К сожалению, maxTransactionSize в настоящее время жестко запрограммирован на 10 МБ в секунду:

 @property maxMessageSize This is currently ignored. However, it will be wired up in a future release.

Это интересная реализация, поскольку файл НЕ отправляется в начальной транзакции. Фактически, только хеш файла включен в саму транзакцию. Файлы отправляются запрашивающему узлу только при необходимости .

Тем не менее, проблема с большим значением maxTransactionSize заключается в том, что все узлы должны считывать весь файл в ОЗУ, что приведет к тому, что некоторые узлы не смогут проверять крупные транзакции, если у них недостаточно ОЗУ.

Проводится работа с файлами чанка и разрешением вложений произвольного размера!

...