61 Commits

Author SHA1 Message Date
Troy McConaghy
abdd23f5a6 Problem: Source files contain no license info (#2455)
* 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 -*-
2018-08-16 12:31:32 +02:00
Vanshdeep Singh
1a74afa9cd Problem: Node operator cannot vote on a ValidatorElection (#2428)
* 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
2018-08-02 11:49:59 +02:00
Vanshdeep Singh
7dcdefc58b Problem: There is no way to add new validators (BEP-21) (#2392).
Solution: Start by integrating the new election spec specifed in BEP-21.
2018-07-27 17:38:24 +02:00
Zachary Bowen
2386ca9d71 Refactor tendermint directory to project root (#2401)
* 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
2018-07-25 16:59:25 +02:00
Zachary Bowen
4d2e58416c Problem: Bigchain class is unused and redundant (#2366)
* 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
2018-07-10 17:34:51 +02:00
Vanshdeep Singh
c7503f5689 Problem: Support for latest Tendermint missing (#2375)
Solution: Upgrade to py-abci 0.5.1 to use latest Tendermint
2018-07-10 14:16:02 +02:00
Muawia Khan
1bad851e07
Problem: Tendermint configuration not present in BigchainDB config (#2342)
* 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
2018-06-29 18:45:22 +05:00
Shahbaz Nazir
bec8d13e36
Problem: Current logging server keeps running in some tear down scenarios (#2304)
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.
2018-06-11 13:08:03 +02:00
Muawia Khan
2b39566a4b Problem: Some configurations are defunct (#2338)
* 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
2018-06-08 15:50:50 +02:00
Troy McConaghy
241db4ee48 Problem: backlog_reassign_delay is defunct but still listed (#2332)
* 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
2018-06-04 12:19:24 +02:00
Vanshdeep Singh
cf36a6fe47 Problem: Multi-threading not enabled (#2258)
Solution: Enable multi-threading
2018-05-03 11:52:54 +02:00
Vanshdeep Singh
0f86e7d368 Problem: Multi-threading not configured (#2165)
* Problem: Multi-threading not configured

Solution: Auto-generate multi-threading config with default threads and workers set to 1

* Problem: Documentation not updated for multi-threading

Solution: Updated necessary docs
2018-03-29 16:26:54 +02:00
vrde
cd6095e854 Problem: test suite doesn't pick up env vars
Solution: call `env_config` from the configuration fixture
2018-02-14 16:43:09 +01:00
vrde
254035150d Problem: default config uses env vars
Solution: this is managed by the function
`bigchaindb.config_utils::env_config`, we don't need to call
`os.environ.get` for each value.
2018-02-14 16:43:09 +01:00
vrde
4157244df7 Problem: statsd config is no longer supported
Solution: remove monitoring code, completes #1138
2018-02-13 14:35:47 +01:00
vrde
2815cffcb5
Flat UTXO collection and first integration with Tendermint™ (#1822)
* Remove testing for rethinkdb, mongodb, and Py3.5

* Add first tests

* Add validation

* Add command to start the ABCI Server

* Reuse existing MongoDB Connection class

* Use DuplicateTransaction

* Test only tendermint

* Update travis scripts

* Fix pep8 errors

* Update Makefile
2017-11-10 17:53:57 +01:00
kansi
0c0d3049f2 Provide log server port as config paramter 2017-10-23 09:17:58 +05:30
Krish
3ec4153375 Support for advertised host, port, scheme for Websockets (#1703)
* Support for advertised host, port, scheme for Websockets

* Update docs

* Add a docstring

* Set env vars in Dockerfile-dev too
2017-08-08 12:04:58 +02:00
tim
bd0d79d399 Allow scheme configuration for ws-server 2017-06-16 09:55:46 +02:00
Krish
f35f01f1cb Add SSL support for MongoDB connections (#1510)
* Add SSL support for MongoDB connections

* Tests for TLS connectivity and other fixes

* Add test for ssl parameters

* Add test for AuthenticationError

* Cleanup branch

* Split env vars as per @r-marques suggestion

* Remove SSL_ENABLED and use BIGCHAINDB_DATABASE_SSL instead

* Changes as per comments from @r-marques

* Remove redundant tests

* Test for ConfigurationError
2017-06-13 12:04:34 +02:00
libscott
32fc9244e6 Benchmark for CREATE transactions (#1511)
* benchmark code, throughput stats collection with graphite

* benchmarks readme

* benchmark readme update with results

* Update README.md

* add comment on why 10000 backlog size in benchmark
2017-06-10 10:01:28 +02:00
Scott Sadler
5de15c33ec disable threads in web workers 2017-05-19 14:05:28 +02:00
Sylvain Bellemare
965334e9b6 Use lower case for default log level 2017-04-18 16:21:02 +02:00
Sylvain Bellemare
4d8f9dd777 Explicitly set default log config
Closes #1318
2017-04-18 16:21:02 +02:00
Sylvain Bellemare
b3290f12d2 Apply log level cmd line option to log file 2017-04-18 16:21:02 +02:00
vrde
d260e16f11
Add configuration for websocket server 2017-04-07 10:51:00 +02:00
vrde
5d2f66524c
Cleanup configuration keys for db 2017-04-04 18:58:34 +02:00
vrde
1e07a5b111
Add ssl, login, and passwd to configure command 2017-04-04 17:43:37 +02:00
Sylvain Bellemare
0edb1c18f2 Keep gunicorn logger_class internal
closes #1334
2017-03-24 14:22:48 +01:00
Sylvain Bellemare
cea78b3ae2 Integrate gunicorn logs with bigchaindb logs
Closes #1329
2017-03-23 17:22:43 +01:00
Sylvain Bellemare
43f779a18b Add logging infrastructure 2017-03-20 13:54:14 +01:00
vrde
c11808ecc5
Move common stuff to generic Connection class 2017-02-23 17:20:21 +01:00
Rodolphe Marques
2fe9c47b63 Feat/990/cleanup monitoring code (#1138)
* remove statsd dependencie

* remove monitoring related code

* removed statsd configuration

* fixed tests

* Removed monitoring docker compose file.

Remove statsd settings from test fixture.
Removed statsd related code from benchmarking tests

* removed monitoring related documentation

* remove unused import
2017-02-03 10:28:28 +01:00
Rodolphe Marques
fafdac2523 Retrieve default backend from env if set.
Fixed tests.
2017-01-31 10:34:45 +01:00
Rodolphe Marques
f12264773c bigchaindb configure now requires a positional backend argument.
Created and fixed tests.
Updated `b` fixture
2017-01-23 16:49:59 +01:00
Rodolphe Marques
e7ffcf5705 Added replicaset name to bigchaindb config (#1063)
* Added replicaset name to bigchaindb config

* changed travis replSet to match bigchaindb default

* Updated initialize_replica_set

It now initializes the replica set with the name provided by the
bigchaindb config file.


* initialize_replica_set is now called when creating a mongodb connection.

This way we are sure that a replica set exists when we return a
connection.

* Moved the initialize replica set logic to the connection.

* update the config documentation
2017-01-20 14:05:28 +01:00
Sylvain Bellemare
18d5a49097 Take env var value if set for db port 2016-12-20 20:37:28 +01:00
Sylvain Bellemare
b2c6474d35 Parametrize backend config 2016-12-13 10:22:39 +01:00
vrde
53fb9f3d5f Add connection Class 2016-12-12 15:47:43 +01:00
troymc
adde84970f Fixed merge conflict in bigchaindb/__init__.py 2016-12-01 16:09:34 +01:00
Rodolphe Marques
e2ea100eb9 Removed hardcoded backlog_reassign_delay.
It now uses the one provided by the settings.
2016-11-22 23:00:16 +01:00
troymc
29d783425d Remove or comment-out the api_endpoint setting everywhere 2016-11-15 17:05:09 +01:00
Christian Gärtner
078d018395 Fixed pep8 violations in bigchaindb source code 2016-11-02 09:26:05 +01:00
Sylvain Bellemare
1ae08990c8 Docker dev setup docs (#653)
* Include configuration step in Dockerfile

* Document dev setup with docker-compose

* Add server API env vars and port

* Parameterize SERVER_BIND and API_ENDPOINT env vars

* Give a bit more detailed information on GET /
2016-10-05 11:25:45 +02:00
Sylvain Bellemare
50b0b3cef2 Rebase/feat/586/integrate tx model (#641)
* Adjust imports to bigchaindb_common

* Adjust get_spent function signature

* Adjust block serialization

* Fix BigchainApi Test

* Fix TestTransactionValidation tests

* Fix TestBlockValidation tests

* WIP: TestMultipleInputs

* Adjust tests to tx-model interface changes

- Fix old tests
- Fix tests in TestMultipleInputs class

* Remove fulfillment message tests

* Fix TransactionMalleability tests

* Remove Cryptoconditions tests

* Remove create_transaction

* Remove signing logic

* Remove consensus plugin

* Fix block_creation pipeline

* Fix election pipeline

* Replace some util functions with bdb_common ones

- timestamp ==> gen_timestamp
- serialize.

* Implement Block model

* Simplify function signatures for vote functions

Change parameter interface for the following functions:

- has_previous_vote
- verify_vote_signature
- block_election_status

so that they take a block's id and voters instead of a fake block.

* Integrate Block and Transaction model

* Fix leftover tests and cleanup conftest

* Add bigchaindb-common to install_requires

* Delete transactions after block is written (#609)

* delete transactions after block is written

* cleanup transaction_exists

* check for duplicate transactions

* delete invalid tx from backlog

* test duplicate transaction

* Remove dead code

* Test processes.py

* Test invalid tx in on server

* Fix tests for core.py

* Fix models tests

* Test commands main fn

* Add final coverage to vote pipeline

* Add more tests to voting pipeline

* Remove consensus plugin docs and misc

* Post rebase fixes

* Fix rebase mess

* Remove extra blank line

* Improve docstring

* Remove comment

handled in bigchaindb/cryptoconditions#27;
see https://github.com/bigchaindb/cryptoconditions/issues/27

* Fix block serialization in block creation

* Add signed_ prefix to transfer_tx

* Improve docs

* Add library documentation page on pipelines

* PR feedback for models.py

* Impr. readability of get_last_voted_block

* Use dict comprehension

* Add docker-compose file to build and serve docs

locally for development purposes

* Change private_key for signing_key

* Improve docstrings

* Remove consensus docs

* Document new consensus module

* Create different transactions for the block

* Cleanup variable names in block.py

* Create different transactions for the block

* Cleanup variable names in block.py
2016-09-29 10:29:41 +02:00
Ryan Henderson
92981e003d Core/198/handle stale transactions (#359)
* add timestamp to transaction assignment

* add reassignment delay to configuration

* refactor to multipipes

* # This is a combination of 7 commits.
# The first commit's message is:
stale transaction monitor and tests

# The 2nd commit message will be skipped:

#	simplify logic

# The 3rd commit message will be skipped:

#	node will assign to self

# The 4th commit message will be skipped:

#	block listens for insert and update

# The 5th commit message will be skipped:

#	more test coverage

# The 6th commit message will be skipped:

#	test coverage

# The 7th commit message will be skipped:

#	test coverage

* stale transaction monitor and tests

* update operation only returns new value
2016-09-07 16:26:41 +02:00
Sylvain Bellemare
a05c688682 Parameterize db host config via env var 2016-05-13 16:21:33 +02:00
Rodolphe Marques
8ed76ca234 Import version in bigchaindb.__init__
Print current version with
import bigchaindb
bigchaindb.__version__
2016-04-21 14:40:51 +02:00
vrde
6844a1a212
Bind to localhost, safer 2016-04-15 16:24:38 +02:00
vrde
06f45f1dc7
Change server port to 9984 2016-04-07 14:15:29 +02:00