* Remove asset.validate_asset and move its validation checks to other areas
* Move Asset.get_asset_id to Transaction
* Remove Asset and AssetLink models
* Add test against creating TRANSFER transactions with bad asset
* Allow AssetLinks to be used in place of Assets in the Transaction Model and enforce `Transaction.transfer()` to only take an AssetLink
* Remove AssetLink's inheritance from Asset
* Remove id from the Asset model
* Fix get_txids_by_asset_id query for rethinkdb after removing asset's uuid
Because `CREATE` transactions don't have an asset that contains an id
anymore, one way to find all the transactions related to an asset is to
query the database twice: once for the `CREATE` transaction and another
for the `TRANSFER` transactions.
* Add TODO notice for vote test utils to be fixtures
* Update asset model documentation to reflect usage of transaction id
* Fix outdated asset description in transaction schema
* Fix typos pointed out in review by @ttmc
* Reword description of an input in the transaction schema
* Re-add removed comment in transaction model
* Fix small typos in some comments in the transaction model
* Add trailling commas to a multiline dict in the transaction model tests
* Fix small things with server docs changes
* Add description of public keys' association with conditions in transaction concept docs
* Reword description of Transaction.create's and args
* Rename output_uri to output_condition_uri
* Fix hardcoded class name vs. self.__class__
* Rename instances of 'out' with 'output'
* Rename instances of and with to avoid name clash with built-in
* Remove unnecessary renaming of cryptoconditions.Fulfillment import in transaction model
* Remove instances of in transaction model
* Remove usages of fulfillment in cases where input makes more sense
* Reword docstrings for init methods in transaction models
* Rename usages of condition where output is now a better fit
* Add descriptions to TransactionLink's txid and idx in schema
* Minor correction to output idx description in transaction yaml
Commit messages for posterity:
* wip transaction schema definition
* test for SchemaObject
* test SchemaObject definions meta property
* schema documentation updates
* test for basic validation
* commit before change to .json file definiton + rst generation
* move to straight .json schema, test for additionalProperties on each object
* add asset to transaction definiton
* remove outdated tx validation
* make all tests pass
* create own exception for validation error and start validating transactions
* more tx validation fixes
* move to yaml file for schema
* automatic schema documentation generator
* remove redundant section
* use YAML safe loading
* change current_owners to owners_before in tx schema
* re-run tests and make correct yaml schema
* fix some broken tests
* update Release_Process.md
* move tx validation into it's own method
* add jsonschema dependency
* perform schema validation after ID validation on Transaction
* Release_Process.md, markdown auto numbering
* remove old transaction.json
* resolve remaining TODOs in schema docuementation
* add `id` and `$schema` to transaction.yaml
* add transaction.yaml to setup.py so it gets copied
* address some concernes in PR for transaction.yaml
* address more PR concerns in transaction.yaml
* refactor validtion exceptions and move transaction schema validation into it's own function in bigchaindb.common.schema.__init__
* add note to generated schema.rst indicating when and how it's generated
* move tx schema validation back above ID validation in Transaction.validate_structure, test that structurally invalid transaction gets caught and 400 returned in TX POST handler
* remove timestamp from transaction schema index
* Add README.md to bigchaindb.common.schema for introduction to JSON Schema and reasons for YAML
* Use constant for schema definitions' base prefix
* Move import of ValidationError exception into only the tests that require it
* Move validate transaction test helper to tests/common/util.py
* move ordered transaction schema load to generate_schema_documentation.py where it's needed
* use double backticks to render terms in schema docs
* change more backticks and change transaction version description in transaction schema
* make details a mandatory property of condition
* Many more documentation fixes
* rename schema.rst to schema/transaction.rst
* Fix documentation for Metadata
* Add more links to documentation
* Various other documentation fixes
* Rename section titles in rendered documentation
* use to manage file handle
* fix extrenuous comma in test_tx_serialization_with_incorrect_hash args
* 'a' * 64
* remove schema validation until we can analyze properly impact on downstream consumers
* fix flake8 error
* use `with` always