public byte[] getTransportBlocks(String path) {

		InnerNode walk = (InnerNode) root;
		ArrayList<Hash> neighbours = new ArrayList<>();
		LeafNode leaf = null;

		// Iteriert von der Wurzel bis zum Blatt
		// Merkt sich alle Schwesterhashes auf dem Weg
		for (int i = 0; i < path.length(); i++) {
			Node needed = null;
			if (path.charAt(i) == '0') {
				Hash hash = walk.right == null ? new Hash(new byte[walk.left.hash.length()]) : walk.right.hash;
				neighbours.add(hash);
				needed = walk.left;
			} else {
				neighbours.add(walk.left.hash);
				needed = walk.right;
			}
			if (needed instanceof InnerNode) {
				walk = (InnerNode) needed;
			} else {
				leaf = (LeafNode) needed;
			}

		}

		byte[] stream = new byte[neighbours.size() * 20 + blocksize];
		int offset = 0;

		for (int i = neighbours.size() - 1; i >= 0; i--) {
			Hash h = neighbours.get(i);
			System.arraycopy(h.getBytes(), 0, stream, offset, h.length());
			offset += h.length();
		}

		if (leaf == null) {
			leaf = new LeafNode(new byte[blocksize]);
		}

		System.arraycopy(leaf.data, 0, stream, offset, leaf.data.length);

		return stream;

	}