NetworkParameters 中设置的 maxTransactionSize 是不是包含附件?

Posted

技术标签:

【中文标题】NetworkParameters 中设置的 maxTransactionSize 是不是包含附件?【英文标题】:Does the maxTransactionSize set in the NetworkParameters include attachments?NetworkParameters 中设置的 maxTransactionSize 是否包含附件? 【发布时间】:2019-05-16 00:16:15 【问题描述】:

NetworkParameters中设置的maxTransactionSize是否包含附件?

我需要发送一个大文件作为附件,我想确保它小于网络参数强制执行的 maxTransactionSize。

【问题讨论】:

【参考方案1】:

maxTransactionSize 是否在计算时包含附件。

如果你想自己看一下,计算在 - WireTransaction.checkTransactionSize:https://github.com/corda/corda/blob/master/core/src/main/kotlin/net/corda/core/transactions/WireTransaction.kt

不幸的是,maxTransactionSize 暂时被硬编码为 10mb 秒:

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

这是一个有趣的实现,因为文件不是在初始事务中发送的。事实上,交易本身只包含文件的哈希值。文件仅在需要时发送到请求节点。

尽管如此,较大的 maxTransactionSize 的问题是所有节点都必须将整个文件读入 RAM,这将导致某些节点在 RAM 不足时无法验证大量事务。

正在对文件进行分块并启用任意大小的附件!

【讨论】:

以上是关于NetworkParameters 中设置的 maxTransactionSize 是不是包含附件?的主要内容,如果未能解决你的问题,请参考以下文章

在 web.config 中设置的当前文化

MDX中设置的父母

计算整数中设置的位数?

在 WebSocketServlet (Jetty WebSockets) 中访问在 HttpServlet 中设置的会话属性

如何刷新我在 ServletContextListener 中设置的 servlet 上下文变量?

如何将注册中设置的值显示到 seevalue() 函数中?范围