-
- Downloads
Feat: added a prefix (radix) trie to compress hashes in votes
To be able to make the vote packages smaller, we have introduced a hash compression mechanism. While hashes can usually not be "compressed" due to limits in information theory, nodes in the IOTA network already know about relevant hashes upfront. We therefore only need to be able to exchange which hash we mean, when we exchange votes. This commit introduces a novel data structure, that uses radix trie like mechanisms, to create a very compact representation of a tx hash that can be understood by others. It allows us to compress the hashes from 49 bytes to 2-3 bytes which is a 94% compression rate.
Showing
- go.mod 1 addition, 1 deletiongo.mod
- go.sum 0 additions, 2 deletionsgo.sum
- packages/ca/heartbeat/serialization_test.go 2 additions, 2 deletionspackages/ca/heartbeat/serialization_test.go
- packages/datastructure/prefix_trie.go 188 additions, 0 deletionspackages/datastructure/prefix_trie.go
- packages/datastructure/prefix_trie_test.go 142 additions, 0 deletionspackages/datastructure/prefix_trie_test.go
- packages/model/approvers/approvers_test.go 1 addition, 1 deletionpackages/model/approvers/approvers_test.go
- packages/model/bundle/bundle_test.go 1 addition, 1 deletionpackages/model/bundle/bundle_test.go
- packages/model/meta_transaction/meta_transaction_test.go 1 addition, 1 deletionpackages/model/meta_transaction/meta_transaction_test.go
- packages/model/value_transaction/value_transaction_test.go 1 addition, 1 deletionpackages/model/value_transaction/value_transaction_test.go
- plugins/autopeering/types/peer/peer_test.go 1 addition, 1 deletionplugins/autopeering/types/peer/peer_test.go
- plugins/bundleprocessor/bundleprocessor_test.go 1 addition, 1 deletionplugins/bundleprocessor/bundleprocessor_test.go
Loading
Please register or sign in to comment