mirror of
https://github.com/mimblewimble/grin.git
synced 2025-02-01 17:01:09 +03:00
Fix buffer index in compact
Indexes used to be positions in the full file, not in the intermediary buffer.
This commit is contained in:
parent
959b1d3e8d
commit
eefb4319f8
4 changed files with 13 additions and 18 deletions
6
Cargo.lock
generated
6
Cargo.lock
generated
|
@ -384,7 +384,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cuckoo_miner"
|
name = "cuckoo_miner"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/mimblewimble/cuckoo-miner?tag=grin_integration_24#d017db6d70061f566a65f35513dc0252bb5b4ee1"
|
source = "git+https://github.com/mimblewimble/cuckoo-miner?tag=grin_integration_25#40cb3146a56d338452b350bbfab18bf0805d1d9d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
"blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -772,7 +772,7 @@ name = "grin_pow"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
"blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cuckoo_miner 0.1.0 (git+https://github.com/mimblewimble/cuckoo-miner?tag=grin_integration_24)",
|
"cuckoo_miner 0.1.0 (git+https://github.com/mimblewimble/cuckoo-miner?tag=grin_integration_25)",
|
||||||
"grin_core 0.2.0",
|
"grin_core 0.2.0",
|
||||||
"grin_util 0.2.0",
|
"grin_util 0.2.0",
|
||||||
"lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -2281,7 +2281,7 @@ dependencies = [
|
||||||
"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9"
|
"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9"
|
||||||
"checksum crossbeam-utils 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d636a8b3bcc1b409d7ffd3facef8f21dcb4009626adbd0c5e6c4305c07253c7b"
|
"checksum crossbeam-utils 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d636a8b3bcc1b409d7ffd3facef8f21dcb4009626adbd0c5e6c4305c07253c7b"
|
||||||
"checksum csv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ef22b37c7a51c564a365892c012dc0271221fdcc64c69b19ba4d6fa8bd96d9c"
|
"checksum csv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ef22b37c7a51c564a365892c012dc0271221fdcc64c69b19ba4d6fa8bd96d9c"
|
||||||
"checksum cuckoo_miner 0.1.0 (git+https://github.com/mimblewimble/cuckoo-miner?tag=grin_integration_24)" = "<none>"
|
"checksum cuckoo_miner 0.1.0 (git+https://github.com/mimblewimble/cuckoo-miner?tag=grin_integration_25)" = "<none>"
|
||||||
"checksum cursive 0.8.2-alpha.0 (git+https://github.com/yeastplume/Cursive?tag=grin_integration_1)" = "<none>"
|
"checksum cursive 0.8.2-alpha.0 (git+https://github.com/yeastplume/Cursive?tag=grin_integration_1)" = "<none>"
|
||||||
"checksum daemonize 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0239832c1b4ca406d5ec73728cf4c7336d25cf85dd32db9e047e9e706ee0e935"
|
"checksum daemonize 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0239832c1b4ca406d5ec73728cf4c7336d25cf85dd32db9e047e9e706ee0e935"
|
||||||
"checksum dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0dd841b58510c9618291ffa448da2e4e0f699d984d436122372f446dae62263d"
|
"checksum dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0dd841b58510c9618291ffa448da2e4e0f699d984d436122372f446dae62263d"
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
extern crate byteorder;
|
extern crate byteorder;
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
|
#[macro_use]
|
||||||
extern crate grin_core as core;
|
extern crate grin_core as core;
|
||||||
extern crate grin_util as util;
|
extern crate grin_util as util;
|
||||||
extern crate libc;
|
extern crate libc;
|
||||||
|
|
|
@ -368,13 +368,10 @@ where
|
||||||
{
|
{
|
||||||
let record_len = 32;
|
let record_len = 32;
|
||||||
|
|
||||||
let off_to_rm = pos_to_rm
|
let off_to_rm = map_vec!(pos_to_rm, |&pos| {
|
||||||
.iter()
|
let shift = self.pruned_nodes.get_shift(pos).unwrap();
|
||||||
.map(|&pos| {
|
(pos - 1 - shift) * record_len
|
||||||
let shift = self.pruned_nodes.get_shift(pos);
|
});
|
||||||
(pos - 1 - shift.unwrap()) * record_len
|
|
||||||
})
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
self.hash_file.save_prune(
|
self.hash_file.save_prune(
|
||||||
tmp_prune_file_hash.clone(),
|
tmp_prune_file_hash.clone(),
|
||||||
|
@ -388,13 +385,10 @@ where
|
||||||
{
|
{
|
||||||
let record_len = T::len() as u64;
|
let record_len = T::len() as u64;
|
||||||
|
|
||||||
let off_to_rm = leaf_pos_to_rm
|
let off_to_rm = map_vec!(leaf_pos_to_rm, |pos| {
|
||||||
.iter()
|
|
||||||
.map(|pos| {
|
|
||||||
let shift = self.pruned_nodes.get_leaf_shift(*pos);
|
let shift = self.pruned_nodes.get_leaf_shift(*pos);
|
||||||
(pmmr::n_leaves(pos - shift.unwrap()) - 1) * record_len
|
(pmmr::n_leaves(pos - shift.unwrap()) - 1) * record_len
|
||||||
})
|
});
|
||||||
.collect::<Vec<_>>();
|
|
||||||
|
|
||||||
self.data_file.save_prune(
|
self.data_file.save_prune(
|
||||||
tmp_prune_file_data.clone(),
|
tmp_prune_file_data.clone(),
|
||||||
|
|
|
@ -187,7 +187,7 @@ impl AppendOnlyFile {
|
||||||
// in which case we skip
|
// in which case we skip
|
||||||
let mut buf_start = 0;
|
let mut buf_start = 0;
|
||||||
while prune_offs[prune_pos] >= read && prune_offs[prune_pos] < read + len {
|
while prune_offs[prune_pos] >= read && prune_offs[prune_pos] < read + len {
|
||||||
let prune_at = prune_offs[prune_pos] as usize;
|
let prune_at = (prune_offs[prune_pos] - read) as usize;
|
||||||
if prune_at != buf_start {
|
if prune_at != buf_start {
|
||||||
writer.write_all(&buf[buf_start..prune_at])?;
|
writer.write_all(&buf[buf_start..prune_at])?;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue