public Node addBlock(SignedBlock block) throws BlockHasNoPreviousException {

		// first look up the previous id

		Node previousBlockNode = lookup.get(block.previous.id);

		if (previousBlockNode == null)
			throw new BlockHasNoPreviousException();

		// add the block to the Node's children

		Node retval = new Node(block);
		previousBlockNode.addChild(retval);

		lookup.put(block.id, retval);

		return retval;

	}