diff --git a/util/src/trie/journal.rs b/util/src/trie/journal.rs
deleted file mode 100644
index c863dd8a4..000000000
--- a/util/src/trie/journal.rs
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2015, 2016 Parity Technologies (UK) Ltd.
-// This file is part of Parity.
-
-// Parity is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Parity is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Parity. If not, see .
-
-use std::default::Default;
-use sha3::*;
-use hash::H256;
-use bytes::*;
-use rlp::*;
-use hashdb::*;
-
-/// Type of operation for the backing database - either a new node or a node deletion.
-#[derive(Debug)]
-enum Operation {
- New(H256, DBValue),
- Delete(H256),
-}
-
-/// How many insertions and removals were done in an `apply` operation.
-pub struct Score {
- /// Number of insertions.
- pub inserts: usize,
- /// Number of removals.
- pub removes: usize,
-}
-
-/// A journal of operations on the backing database.
-#[derive(Debug)]
-pub struct Journal (Vec);
-
-impl Default for Journal {
- fn default() -> Self {
- Journal::new()
- }
-}
-
-impl Journal {
- /// Create a new, empty, object.
- pub fn new() -> Journal { Journal(vec![]) }
-
- /// Given the RLP that encodes a node, append a reference to that node `out` and leave `journal`
- /// such that the reference is valid, once applied.
- pub fn new_node(&mut self, rlp: DBValue, out: &mut RlpStream) {
- if rlp.len() >= 32 {
- let rlp_sha3 = rlp.sha3();
-
- trace!("new_node: reference node {:?} => {:?}", rlp_sha3, &*rlp);
- out.append(&rlp_sha3);
- self.0.push(Operation::New(rlp_sha3, rlp));
- }
- else {
- trace!("new_node: inline node {:?}", &*rlp);
- out.append_raw(&rlp, 1);
- }
- }
-
- /// Given the RLP that encodes a now-unused node, leave `journal` in such a state that it is noted.
- pub fn delete_node_sha3(&mut self, old_sha3: H256) {
- trace!("delete_node: {:?}", old_sha3);
- self.0.push(Operation::Delete(old_sha3));
- }
-
- /// Register an RLP-encoded node for deletion (given a slice), if it needs to be deleted.
- pub fn delete_node(&mut self, old: &[u8]) {
- let r = Rlp::new(old);
- if r.is_data() && r.size() == 32 {
- self.delete_node_sha3(r.as_val());
- }
- }
-
- /// Apply this journal to the HashDB `db` and return the number of insertions and removals done.
- pub fn apply(self, db: &mut HashDB) -> Score {
- trace!("applying {:?} changes", self.0.len());
- let mut ret = Score{inserts: 0, removes: 0};
- for d in self.0 {
- match d {
- Operation::Delete(h) => {
- trace!("TrieDBMut::apply --- {:?}", &h);
- db.remove(&h);
- ret.removes += 1;
- },
- Operation::New(h, d) => {
- trace!("TrieDBMut::apply +++ {:?} -> {:?}", &h, d.pretty());
- db.emplace(h, d);
- ret.inserts += 1;
- }
- }
- }
- ret
- }
-}
diff --git a/util/src/trie/mod.rs b/util/src/trie/mod.rs
index 6a0e588c3..151760c8c 100644
--- a/util/src/trie/mod.rs
+++ b/util/src/trie/mod.rs
@@ -22,8 +22,6 @@ use hashdb::{HashDB, DBValue};
/// Export the standardmap module.
pub mod standardmap;
-/// Export the journal module.
-pub mod journal;
/// Export the node module.
pub mod node;
/// Export the triedb module.
diff --git a/util/src/trie/node.rs b/util/src/trie/node.rs
index e21fc8b3f..44f1f3bfa 100644
--- a/util/src/trie/node.rs
+++ b/util/src/trie/node.rs
@@ -18,7 +18,6 @@ use elastic_array::ElasticArray36;
use nibbleslice::*;
use bytes::*;
use rlp::*;
-use super::journal::*;
use hashdb::DBValue;
/// Partial node key type.
@@ -123,44 +122,4 @@ impl Node {
}
}
}
-
- /// Encode the node, adding it to `journal` if necessary and return the RLP valid for
- /// insertion into a parent node.
- pub fn encoded_and_added(&self, journal: &mut Journal) -> DBValue {
- let mut stream = RlpStream::new();
- match *self {
- Node::Leaf(ref slice, ref value) => {
- stream.begin_list(2);
- stream.append(&&**slice);
- stream.append(&&**value);
- },
- Node::Extension(ref slice, ref raw_rlp) => {
- stream.begin_list(2);
- stream.append(&&**slice);
- stream.append_raw(&&**raw_rlp, 1);
- },
- Node::Branch(ref nodes, ref value) => {
- stream.begin_list(17);
- for i in 0..16 {
- stream.append_raw(&*nodes[i], 1);
- }
- match *value {
- Some(ref n) => { stream.append(&&**n); },
- None => { stream.append_empty_data(); },
- }
- },
- Node::Empty => {
- stream.append_empty_data();
- }
- }
- let node = DBValue::from_slice(stream.as_raw());
- match node.len() {
- 0 ... 31 => node,
- _ => {
- let mut stream = RlpStream::new();
- journal.new_node(node, &mut stream);
- DBValue::from_slice(stream.as_raw())
- }
- }
- }
}