When subscribing to an account via the get_full_account API it will
start streaming any object relevant to the account that is added,
removed, or modified.
This is done to comply with the policy that transactions should be self
describing and not depend upon implied state. This makes things easier
for everyone to understand exactly when a transaction will be invalid
without having to refer to chain state.
1. Implement a TaPoS assert operation predicate that offers full block ID
validation for transactions that want the added security. This is only
required for transactions that are of high value and transfer control of
funds to a newly created identifier and where the witnesses cannot be
trusted.
2. Remove the full block ID from the transaction digest generation.
- remove circular dependency with fee_schedule
- unitiy build db_* as database.cpp
- move protocol definitions in separate directory
- combined some objects/evaluators
- combined limit/call evaluator/objects into market_evaluator.*