Solution: have a more general approach to process transaction types. If
a transaction does *not* contain `asset.id`, then the `id` of the
`asset` is the `id` of the transaction.
* Problem: `run_upsert_validator_approve` was getting the voting power in a convoluted way
Solution: Changed it to get the voting power from the election outputs
* Problem: `run_upsert_validator_approve` casts votes for *all* voters, not just the user calling the command
Solution: Filter vote txs by the users public key
* Problem: Docs needed a more specific description of how to input the path to the private-key file
Solution: Changed the wording a bit
* Problem: several tests are skipped
Solution: activate or remove tests
* Problem: store_transaction is deprecated
Solution: replace it with store_bulk_transaction
* Problem: we don't test the transaction split
Solution: undelete `test_store_transaction`
* Problem: failing tests
Solution: merge master and change deprecated store_transaction
* Problem: tests in test_bigchain_api are not activated
Solution: remove or active tests
* Problem: TransactionNotInValidBlock was removed
Solution: remove TransactionNotInValidBlock from tests
* Problem: Source files contain no license info
Solution: Add comments with SPDX license info to source files
* Python 3 files don't need # -*- coding: utf-8 -*-
* Problem: core.py contains an unused class, `Bigchain`
Solution: Remove core.py. Refactor BigchainDB Class to remove inheritance from Bigchain.
* Fixed flake8 complaint about too many blank lines
* Attempting to fix Sphinx docs. This may result in some redundant commits, as I don't know what I'm doing, and I can't experiment without running the CI...
Sorry in advance!
* Updating from master changed BigchainDB.process_post_response to a private method, so I had to align with that.
* Fixed a couple stale references to bigchaindb.Bigchain in docstrings
* Missed a reference to `Bigchain` in a patch call...
* Problem: Tests in class `TestBigChainAPI` from `tests/db/test_bigchain_api.py` were disabled
Solution: Fixed the tests that still made sense, and deleted the rest.
* Problem: Flake8 style complaints
Solution: Made things prettier
* Problem: Debugging comments were slightly NSFW
Solution: Deleted the debugging comments
* Problem: Stale use of `pytest.mark.genesis` decorator on these tests
Solution: Removed the decorator
* Problem: CriticalDoubleInclusion exception was no longer used anywhere in the code
Solution: Deleted it
* Problem: Unused exception `GenesisBlockAlreadyExistsError`
Solution: Deleted it
* Problem: I removed a test that covered writing to the DB and checking that everything is stored faithfully
Solution: Replaced it and got it working again
* Problem: Need a method to initiate a new upsert-validator election
Solution: Added subcommand `new` to `upsert_validator`
* Problem: Changes to upsert-validator needed to be reflected in the docs
Solution: Wrote a section for `upsert-validator new`
* Problem: all blocks are valid
Solution: remove the status from transactions
* Problem: changed the return type of get_transaction_filtered
Solution: return tx class instead of dict
Solution: Random failure of test
`tests/test_events.py::test_event_handler_raises_when_called_after_start` seem
to be because of `get_nowait` which returns way to quickly even when the queue
has data. Increasing timeout seems to fix the issue.
* Problem: Validator set not tracked by BigchainDB
Solution: BigchainDB depends on tendermint's RPC API to get the validator set
which is not avaiable during replay so the validators set should be tracked
inside BigchainDB
* Problem: Unclear code and documentation
Solution: Fix decode_validator and docs strings
* Problem: Doc strings missing
Solution: Add doc string for store_validato_set
* Problem: Node operator cannot vote on a ValidatorElection
Solution: Implement validator election voting spec
* Problem: Incorrent code comments
Solution: Update comments with correct context
* Problem: Delegated vote not casted back to election
Solution: Update test to cast votes back to election id and assert their validity
* Last PR before the release of BigchainDB 2.0 Beta 5
* Fix editing error
* Change development status back to 4 - beta
* Rephrase some fixes I
* Rephrase some fixes II
* Problem: Stateful validation doesn't raise double spend exception
Solution: Transaction.validate should raise exception DoubleSpend if the given
transaction is already a part of the database
* Problem: Double spend exception message not accurate
Solution: The exception message should state that the double spend is because of
spending the same input more than once in the transaction
Solution: It might be related on how aiohttp 2.x handles `send_str`.
AFAIK the call `send_str` was not "fully async". In aiohttp 3.x they
[changed it][1]:
> send_str(), send_bytes(), send_json(), ping() and pong() are genuine
async functions now. (#2475)
So this patch adds support for aiohttp 3.x, and uses the `send_str`
coroutine.
[1]: https://github.com/aio-libs/aiohttp/blob/master/HISTORY.rst#deprecations-and-removals-1
* Problem: core.py contains an unused class, `Bigchain`
Solution: Remove core.py. Refactor BigchainDB Class to remove inheritance from Bigchain.
* Problem: core.py contains an unused class, `Bigchain`
Solution: Remove core.py. Refactor BigchainDB Class to remove inheritance from Bigchain.
* Fixed flake8 complaint about too many blank lines
* Attempting to fix Sphinx docs. This may result in some redundant commits, as I don't know what I'm doing, and I can't experiment without running the CI...
Sorry in advance!
* Attempting to fix Sphinx docs. This may result in some redundant commits, as I don't know what I'm doing, and I can't experiment without running the CI...
Sorry in advance!
* Updating from master changed BigchainDB.process_post_response to a private method, so I had to align with that.
* Fixed a couple stale references to bigchaindb.Bigchain in docstrings
* Missed a reference to `Bigchain` in a patch call...
* Problem: BigchainDB class should be part of project root
Solution: Removed the /tendermint directory and moved its contents to project root
* Problem: Flake8 complained that imports were not at the top of the file
Solution: Had to play around with the order of imports to avoid cyclic dependencies, but its working and style compliant now
* Problem: Stale reference to /tendermint directory in the index
Solution: Removed the references to /tendermint
* Problem: Flake8 complaining of unused import in __init__.py
Solution: The import is there so I can import App directly from bigchaindb, rather than from bigchaindb.core (which I think improves code readability. I added a # noqa to silence Flake8.
* Problem: Stale references to `bigchaindb.tendermint.BigchainDB` in the rst files cause Sphinx to fail
Solution: Updated the autodoc files to use `bigchaindb.BigchainDB` instead
* Problem: Stale reference to the `tendermint` directory in an @patch in a disabled test
Solution: Updated the @patch for completeness
* Problem: BigchainDB class should be part of project root
Solution: Removed the /tendermint directory and moved its contents to project root
* Problem: Flake8 complained that imports were not at the top of the file
Solution: Had to play around with the order of imports to avoid cyclic dependencies, but its working and style compliant now
* Problem: Stale reference to /tendermint directory in the index
Solution: Removed the references to /tendermint
* Problem: Flake8 complaining of unused import in __init__.py
Solution: The import is there so I can import App directly from bigchaindb, rather than from bigchaindb.core (which I think improves code readability. I added a # noqa to silence Flake8.
* Problem: Stale references to `bigchaindb.tendermint.BigchainDB` in the rst files cause Sphinx to fail
Solution: Updated the autodoc files to use `bigchaindb.BigchainDB` instead
* Problem: Stale reference to the `tendermint` directory in an @patch in a disabled test
Solution: Updated the @patch for completeness
Solution: when a transaction is stored, the system splits it in three
components, data, metadata, and the other fields of the transaction.
When the system retrieves a transaction, it needs to make three
different queries to reconstruct the original transaction. If a
transaction does not exist, the system does three queries anyway, even
if just one query is enough. This patch fixes this by doing the
additional queries if and only if the transaction exists.
* Updated CHANGELOG.md for the 2.0b2 release
* Update bigchaindb docker image names for k8s for the 2.0b2 release
* Update version.py for the 2.0b2 release
* In CHANGELOG.md, added note re port 46657->26657
* Problem: core.py contains an unused class, `Bigchain`
Solution: Remove core.py. Refactor BigchainDB Class to remove inheritance from Bigchain.
* Problem: core.py contains an unused class, `Bigchain`
Solution: Remove core.py. Refactor BigchainDB Class to remove inheritance from Bigchain.
* Fixed flake8 complaint about too many blank lines
* Attempting to fix Sphinx docs. This may result in some redundant commits, as I don't know what I'm doing, and I can't experiment without running the CI...
Sorry in advance!
* Attempting to fix Sphinx docs. This may result in some redundant commits, as I don't know what I'm doing, and I can't experiment without running the CI...
Sorry in advance!
* Updating from master changed BigchainDB.process_post_response to a private method, so I had to align with that.
* Fixed a couple stale references to bigchaindb.Bigchain in docstrings
* Missed a reference to `Bigchain` in a patch call...
* Merge with master and re-do some changes
* Problem: 2 implementations of fastquery exist.
Solution: Remove the old deprecated implementation. Update the tests.
* Problem: There are still 3 outdated fastquery tests.
Solution: Fix the tests.
* Problem: Tendermint configuration not present in BigchainDB config
* Handle tendermint configurations properly
- Update docs
* Nitpick
* Missed some conflicts
* Make changes in tendermint/lib.py instead of deprecated core.py
- Also remove redundant info from docs about default values
* Fix docsserver automethod
* Problem: docs are not building anymore
Solution: add wget to the requirements for docs
* Problem: The Block class is deprecated
Solution: remove the block class and all occurrences
* Problem: voting code is not used anymore
Solution: remove all voting related code
* Problem: Some voting functionality is still present.
Solution: Remove it. Update some of the related tests.
* Problem: some skipped tests are now running
Solution: remove pytest mark to not run them
* Problem: fastquery is not related to votes
Solution: remove it in another PR
Solution: Remove the current pub/sub based logging infra as this model is no longer necessary. This can now be replaced by a simple system level logging config.
* Problem: BigchainDB config has stale/deprecated parameters
- Remove `keyring` and `keypair` from config
- Update tests
- Add `tendermint` config
* Fix flake8
* Update some naming conventions and redundant changes
* Remove redundant routine `fast_query`
* Remove deprecated parameters and descriptions
* remove some more unwanted code
* Problem: Two flake8 errors made Travis fail
Solution: Fix the two flake8 errors
* Address comments
- Remove reference of nodes_except_me and me_private and me
as attributes of BigchainDB instances
- Update and re-add test(s)
- Do not introduce `tendermint` in configuration instead handle that
in a separate PR along with docs
* Address comments
- Remove tests that are already covered with 2.0
- Remove tests that are no longer relevant
- Add TODO for more cleanup
* Remove tendermint config from configure command
* Fixed 2 PEP257 compliance errors
* Upgrade Tendermint to 0.19.7 except for Docker image, which is still at 0.19.2
* Problem: backlog_reassign_delay is defunct but still listed
Solution: remove all mentions of & calls for backlog_reassign_delay
* Update CHANGELOG.md for 2.0 Beta 1 release
* Changed 2.0.0b1 release date to 2018-06-01
* k8s: Updated bigchaindb docker image tag to 2.0.0-beta1
* Updated version.py for the 2.0 Beta 1 release
* Updated dev status to '4 - Beta' in setup.py for the 2.0 Beta 1 release
* Problem: API returns 404 for existing empty blocks
Solution: Empty blocks are not store in MongoDB because Tendermint does
not notify BigchainDB about them. In case a user requests a block that
is not in our MongoDB, we check if the requested height is less than or
equal to latest_block_height. If that's the case, we return an empty
block. If the requested height is greater than latest_block_height, then
we return 404.
* Address Lev's comment
* address Lev and Vansh comment
* Problem: RethinkDB, change feed, old mongo, admin interface are not supported any longer.
Solution: Remove unsupported functionality. Bring the MongoDB backend implementation completely to the localmongodb package. Fix the test setup.
* Problem: Nothing depends on multipipes any longer.
Solution: Remove multipipes from setup.py.
* Problem: The how-to-run-tests doc uses --database-backend.
Solution: Do not include the --database-backend option into the documented pytest usage.
* Problem: The backends docs are outdated.
Solution: Document MongoDB as the default and only backend for BigchainDB.
* Problem: The inputs fixtures uses old blocks API.
Solution: Change the inputs fixtures to use the new blocks API.
* Problem: rethinkdb package is not used anymore.
Solution: Remove the rethinkdb dependency from setup.py.
* Problem: The abci-marked tests use outdated Mongo conn.
Solution: Replace MongoDBConnection with LocalMongoDBConnection for them.