在阅读附件文档时,我看到“(附件)这些文件是在需要时从发送事务的节点自动请求的,并在本地缓存,因此在再次遇到它们时不会再请求它们。”
有人可以通过解释如何帮助我吗?
如果节点知道附件的哈希,它可以只向上传它的原始节点请求附件?
它实际上如何“向发送给他们的发件人请求”。知道哈希的任何节点都可以请求附件吗?
科尔达账本松弛问题:http://slack.corda.net/
答案 0 :(得分:1)
事务包含附件的哈希。接收节点检查其保管库中的哈希值。如果它不存在,它将向发送者发送请求。他们将其存储在自己的数据库中。如果哈希再次包含在交易中,则会从其自己的保管库中加载
查看FetchAttachmentsFlow
的代码
/**
* Given a set of hashes either loads from local storage or requests them from the other peer. Downloaded
* attachments are saved to local storage automatically.
*/
class FetchAttachmentsFlow(requests: Set<SecureHash>,
otherSide: FlowSession) : FetchDataFlow<Attachment, ByteArray>(requests, otherSide, DataType.ATTACHMENT)