From 22ab57bba435dc098b82c4609bfe2580cf87ae65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Eckel?= Date: Mon, 28 Feb 2022 10:31:08 +0100 Subject: [PATCH 1/3] getting tarantool into testing mode --- .travis.yml | 12 ++++- Dockerfile-all-in-one | 2 +- docker-compose.yml | 20 ++++++-- planetmint/__init__.py | 55 +++++++++++++--------- planetmint/backend/connection_tarantool.py | 36 ++++++++++---- planetmint/backend/tarantool/query.py | 2 +- planetmint/commands/planetmint.py | 9 ++-- setup.py | 5 +- tests/commands/test_commands.py | 2 +- tests/conftest.py | 4 +- tests/test_config_utils.py | 2 +- 11 files changed, 100 insertions(+), 49 deletions(-) diff --git a/.travis.yml b/.travis.yml index e13715a..76b4775 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,15 @@ env: matrix: fast_finish: true include: + - python: 3.9 + env: + - PLANETMINT_DATABASE_BACKEND=tarantool + - PLANETMINT_DATABASE_SSL= + - python: 3.9 + env: + - PLANETMINT_DATABASE_BACKEND=tarantool + - PLANETMINT_DATABASE_SSL= + - PLANETMINT_CI_ABCI=enable - python: 3.9 env: - PLANETMINT_DATABASE_BACKEND=localmongodb @@ -34,7 +43,8 @@ matrix: env: - PLANETMINT_DATABASE_BACKEND=localmongodb - PLANETMINT_DATABASE_SSL= - - PLANETMINT_CI_ABCI=enable + - PLANETMINT_CI_ABCI=enable + - python: 3.9 env: - PLANETMINT_ACCEPTANCE_TEST=enable diff --git a/Dockerfile-all-in-one b/Dockerfile-all-in-one index ebf9df8..62cb65a 100644 --- a/Dockerfile-all-in-one +++ b/Dockerfile-all-in-one @@ -34,7 +34,7 @@ RUN mkdir -p /data/db /data/configdb \ # Planetmint enviroment variables ENV PLANETMINT_DATABASE_PORT 27017 -ENV PLANETMINT_DATABASE_BACKEND localmongodb +ENV PLANETMINT_DATABASE_BACKEND tarantool ENV PLANETMINT_SERVER_BIND 0.0.0.0:9984 ENV PLANETMINT_WSSERVER_HOST 0.0.0.0 ENV PLANETMINT_WSSERVER_SCHEME ws diff --git a/docker-compose.yml b/docker-compose.yml index a72b8bf..5736e36 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,15 @@ services: - "27017:27017" command: mongod restart: always + + tarantool: + image: tarantool/tarantool:2.3.1 + ports: + - "5200:5200" + - "3301:3301" + command: tarantool + restart: always + planetmint: depends_on: - mongodb @@ -31,9 +40,9 @@ services: - ./pytest.ini:/usr/src/app/pytest.ini - ./tox.ini:/usr/src/app/tox.ini environment: - PLANETMINT_DATABASE_BACKEND: localmongodb - PLANETMINT_DATABASE_HOST: mongodb - PLANETMINT_DATABASE_PORT: 27017 + PLANETMINT_DATABASE_BACKEND: tarantool + PLANETMINT_DATABASE_HOST: tarantool + PLANETMINT_DATABASE_PORT: 3301 PLANETMINT_SERVER_BIND: 0.0.0.0:9984 PLANETMINT_WSSERVER_HOST: 0.0.0.0 PLANETMINT_WSSERVER_ADVERTISED_HOST: planetmint @@ -43,6 +52,7 @@ services: - "9984:9984" - "9985:9985" - "26658" + - "2222:2222" healthcheck: test: ["CMD", "bash", "-c", "curl http://planetmint:9984 && curl http://tendermint:26657/abci_query"] interval: 3s @@ -50,6 +60,7 @@ services: retries: 3 command: '.ci/entrypoint.sh' restart: always + tendermint: image: tendermint/tendermint:v0.31.5 # volumes: @@ -60,6 +71,7 @@ services: - "26657:26657" command: sh -c "tendermint init && tendermint node --consensus.create_empty_blocks=false --proxy_app=tcp://planetmint:26658" restart: always + bdb: image: busybox depends_on: @@ -93,7 +105,7 @@ services: context: . dockerfile: Dockerfile-dev args: - backend: localmongodb + backend: tarantool volumes: - .:/usr/src/app/ command: make -C docs/root html diff --git a/planetmint/__init__.py b/planetmint/__init__.py index a8e927d..a852ffc 100644 --- a/planetmint/__init__.py +++ b/planetmint/__init__.py @@ -6,6 +6,7 @@ import copy import logging import os +#import planetmint.debug from planetmint.log import DEFAULT_LOGGING_CONFIG as log_config from planetmint.lib import Planetmint # noqa @@ -23,45 +24,57 @@ from planetmint.core import App # noqa # I tried to configure _database_keys_map = { # TODO Check if it is working after removing 'name' field - 'tarantool_db': ('host', 'port'), + 'tarantool': ('host', 'port'), + 'localmongodb': ('host', 'port', 'name'), } -_base_database_tarantool_local_db = { # TODO Rewrite this configs for tarantool usage +_base_database_localmongodb = { 'host': 'localhost', + 'port': 27017, + 'name': 'planetmint', + 'replicaset': None, + 'login': None, + 'password': None, +} + +_database_localmongodb = { + 'backend': 'localmongodb', + 'connection_timeout': 5000, + 'max_tries': 3, + 'ssl': False, + 'ca_cert': None, + 'certfile': None, + 'keyfile': None, + 'keyfile_passphrase': None, + 'crlfile': None, +} +_database_localmongodb.update(_base_database_localmongodb) + +_base_database_tarantool_local_db = { # TODO Rewrite this configs for tarantool usage + 'host': 'tarantool', 'port': 3301, - 'username': None, + 'username': 'guest', 'password': None, "connect_now": True, "encoding": "utf-8" } -init_config = { - "init_file": "init_db.txt", - "relative_path": os.path.dirname(os.path.abspath(__file__)) + "/backend/tarantool/" -} -drop_config = { - "drop_file": "drop_db.txt", # planetmint/backend/tarantool/init_db.txt - "relative_path": os.path.dirname(os.path.abspath(__file__)) + "/backend/tarantool/" -} _database_tarantool = { - 'backend': 'tarantool_db', + 'backend': 'tarantool', 'connection_timeout': 5000, 'max_tries': 3, "reconnect_delay": 0.5, - "ctl_config": { - "login": "admin", - "host": "admin:pass@127.0.0.1:3301", - "service": "tarantoolctl connect", - "init_config": init_config, - "drop_config": drop_config - } + #"host": "admin:pass@127.0.0.1:3301", + #"service": "tarantoolctl connect", } _database_tarantool.update(_base_database_tarantool_local_db) _database_map = { - 'tarantool_db': _database_tarantool + 'tarantool': _database_tarantool, + 'localmongodb': _database_localmongodb, } + config = { 'server': { # Note: this section supports all the Gunicorn settings: @@ -85,7 +98,7 @@ config = { 'version': 'v0.31.5', # look for __tm_supported_versions__ }, # TODO Maybe remove hardcode configs for tarantool (review) - 'database': _database_map['tarantool_db'], + 'database': _database_map['tarantool'], 'log': { 'file': log_config['handlers']['file']['filename'], 'error_file': log_config['handlers']['errors']['filename'], diff --git a/planetmint/backend/connection_tarantool.py b/planetmint/backend/connection_tarantool.py index 1954f37..f3eb4c7 100644 --- a/planetmint/backend/connection_tarantool.py +++ b/planetmint/backend/connection_tarantool.py @@ -9,19 +9,30 @@ from itertools import repeat import tarantool import planetmint +import os from planetmint.backend.exceptions import ConnectionError from planetmint.backend.utils import get_planetmint_config_value, get_planetmint_config_value_or_key_error from planetmint.common.exceptions import ConfigurationError BACKENDS = { # This is path to MongoDBClass - 'tarantool_db': 'planetmint.backend.connection_tarantool.TarantoolDB', + 'tarantool': 'planetmint.backend.connection_tarantool.TarantoolDB', } logger = logging.getLogger(__name__) class TarantoolDB: + init_config = { + "init_file": "init_db.txt", + "relative_path": os.path.dirname(os.path.abspath(__file__)) + "/backend/tarantool/" + } + + drop_config = { + "drop_file": "drop_db.txt", # planetmint/backend/tarantool/init_db.txt + "relative_path": os.path.dirname(os.path.abspath(__file__)) + "/backend/tarantool/" + } + def __init__(self, host: str, port: int, user: str, password: str, reset_database: bool = False): self.db_connect = tarantool.connect(host=host, port=port, user=user, password=password) if reset_database: @@ -40,23 +51,25 @@ class TarantoolDB: def drop_database(self): from planetmint.backend.tarantool.utils import run - config = get_planetmint_config_value_or_key_error("ctl_config") - drop_config = config["drop_config"] - f_path = "%s%s" % (drop_config["relative_path"], drop_config["drop_file"]) +# config = get_planetmint_config_value_or_key_error("ctl_config") +# drop_config = config["drop_config"] + f_path = "%s%s" % (self.drop_config["relative_path"], self.drop_config["drop_file"]) commands = self.__read_commands(file_path=f_path) run(commands=commands, config=config) def init_database(self): from planetmint.backend.tarantool.utils import run - config = get_planetmint_config_value_or_key_error("ctl_config") - init_config = config["init_config"] - f_path = "%s%s" % (init_config["relative_path"], init_config["init_file"]) + # config = get_planetmint_config_value_or_key_error("ctl_config") + # init_config = config["init_config"] + f_path = "%s%s" % (self.init_config["relative_path"], self.init_config["init_file"]) commands = self.__read_commands(file_path=f_path) run(commands=commands, config=config) -def connect(host: str = None, port: int = None, username: str = "admin", password: str = "pass", + + +def connect(host: str = None, port: int = None, username: str = None, password: str = None, backend: str = None, reset_database: bool = False, name=None, max_tries=None, - connection_timeout=None, replicaset=None, ssl=None, login: str = "admin", ctl_config=None, + connection_timeout=None, replicaset=None, ssl=None, login: str = None, ctl_config=None, ca_cert=None, certfile=None, keyfile=None, keyfile_passphrase=None, reconnect_delay=None, crlfile=None, connect_now=True, encoding=None): backend = backend or get_planetmint_config_value_or_key_error('backend') # TODO Rewrite Configs @@ -73,7 +86,10 @@ def connect(host: str = None, port: int = None, username: str = "admin", passwor 'Planetmint currently supports {}'.format(backend, BACKENDS.keys())) except (ImportError, AttributeError) as exc: raise ConfigurationError('Error loading backend `{}`'.format(backend)) from exc - + print(host) + print(port) + print(username) + logger.debug('Connection: {}'.format(Class)) return Class(host=host, port=port, user=username, password=password, reset_database=reset_database) diff --git a/planetmint/backend/tarantool/query.py b/planetmint/backend/tarantool/query.py index 414c672..f6bc958 100644 --- a/planetmint/backend/tarantool/query.py +++ b/planetmint/backend/tarantool/query.py @@ -5,7 +5,7 @@ """Query implementation for MongoDB""" -from pymongo import DESCENDING +#from pymongo import DESCENDING from secrets import token_hex from operator import itemgetter diff --git a/planetmint/commands/planetmint.py b/planetmint/commands/planetmint.py index c44afa8..d03ee61 100644 --- a/planetmint/commands/planetmint.py +++ b/planetmint/commands/planetmint.py @@ -318,12 +318,11 @@ def create_parser(): help='Prepare the config file.') config_parser.add_argument('backend', - choices=['tarantool_db'], - default='tarantool_db', - const='tarantool_db', + choices=['tarantool', 'localmongodb'], + default='tarantool', + const='tarantool', nargs='?', - help='The backend to use. It can only be ' - '"tarantool_db", currently.') + help='The backend to use. Tarantool is default.') # parser for managing elections election_parser = subparsers.add_parser('election', diff --git a/setup.py b/setup.py index 9231afa..31198b6 100644 --- a/setup.py +++ b/setup.py @@ -83,7 +83,7 @@ install_requires = [ 'gunicorn==20.1.0', 'jsonschema==3.2.0', 'logstats==0.3.0', - 'packaging>=20.9', + 'packaging>=20.9', # TODO Consider not installing the db drivers, or putting them in extras. 'pymongo==3.11.4', 'tarantool==0.7.1', @@ -91,9 +91,10 @@ install_requires = [ 'pyyaml==5.4.1', 'requests==2.25.1', 'setproctitle==1.2.2', + 'ptvsd' ] -if sys.version_info < (3, 6): +if sys.version_info < (3, 9): install_requires.append('pysha3~=1.0.2') setup( diff --git a/tests/commands/test_commands.py b/tests/commands/test_commands.py index b6c90ad..0fe1b33 100644 --- a/tests/commands/test_commands.py +++ b/tests/commands/test_commands.py @@ -181,7 +181,7 @@ def test_run_configure_when_config_does_exist(monkeypatch, @pytest.mark.skip @pytest.mark.parametrize('backend', ( - 'localmongodb', + 'tarantool', )) def test_run_configure_with_backend(backend, monkeypatch, mock_write_config): import planetmint diff --git a/tests/conftest.py b/tests/conftest.py index 726c45b..6d2cd8f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -48,7 +48,7 @@ def pytest_addoption(parser): parser.addoption( '--database-backend', action='store', - default=os.environ.get('PLANETMINT_DATABASE_BACKEND', 'tarantool_db'), + default=os.environ.get('PLANETMINT_DATABASE_BACKEND', 'tarantool'), help='Defines the backend to use (available: {})'.format(backends), ) @@ -97,7 +97,7 @@ def _configure_planetmint(request): test_db_name = '{}_{}'.format(TEST_DB_NAME, xdist_suffix) # backend = request.config.getoption('--database-backend') - backend = "tarantool_db" + backend = "tarantool" config = { 'database': planetmint._database_map[backend], diff --git a/tests/test_config_utils.py b/tests/test_config_utils.py index 2b50135..c529dfb 100644 --- a/tests/test_config_utils.py +++ b/tests/test_config_utils.py @@ -185,7 +185,7 @@ def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request): config_utils.autoconfigure() database_mongodb = { - 'backend': 'localmongodb', + 'backend': 'tarantool', 'host': DATABASE_HOST, 'port': DATABASE_PORT, 'name': DATABASE_NAME, From 2e4677efdd9d5e36f17fd35c012ec22a3dc2a53e Mon Sep 17 00:00:00 2001 From: liviulesan Date: Thu, 10 Mar 2022 15:09:22 +0000 Subject: [PATCH 2/3] documentation on how to use tarantool with planetmint --- planetmint/backend/tarantool/tarantool.md | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 planetmint/backend/tarantool/tarantool.md diff --git a/planetmint/backend/tarantool/tarantool.md b/planetmint/backend/tarantool/tarantool.md new file mode 100644 index 0000000..1379d01 --- /dev/null +++ b/planetmint/backend/tarantool/tarantool.md @@ -0,0 +1,31 @@ +# How to start using planetmint with tarantool + +First of all you have do download [Tarantool](https://www.tarantool.io/en/download/os-installation/ubuntu/). + + +## How to connect tarantool to planetmint + +After a successful instalation you should be able to run from you terminal command ```tarantool```. In the cli of tarantool you need initializa a listening following the example : +``` +box.cfg{listen=3301} +``` +[^1]. +Afterwards quit cli of tarantool and scan by port if to be sure that service was created by tarantool. + +### How to init spaces and indexes of tarantool[^2]. + +For this step you need to go in the root folder of planetmint and run from your virtual enviroment: + +``` +python planetmint init localhost 3301 admin pass +``` + +### In case you want to reset tarantool you can run command above and adding at the end True. + + +[^1]: This is example of the port address that can be used. + +[^2]: Not yet working + + + From 9f42bec2abaa65a59781b208758a2a485edd59e2 Mon Sep 17 00:00:00 2001 From: liviulesan Date: Fri, 11 Mar 2022 14:38:20 +0000 Subject: [PATCH 3/3] updated documentation for planetmint with references to tarantool instead of mongodb --- .../run-dev-network-stack.md | 8 +-- .../run-node-as-processes.md | 12 ++-- .../run-node-with-docker-compose.md | 4 +- .../_static/mongodb_cloud_manager_1.png | Bin 12196 -> 0 bytes .../installation/appendices/log-rotation.md | 7 +- .../network-setup/network-setup.md | 7 +- .../network-setup/planetmint-node-ansible.md | 2 +- .../node-setup/all-in-one-planetmint.md | 7 +- .../installation/node-setup/configuration.md | 66 +++--------------- .../installation/node-setup/planetmint-cli.md | 12 ++-- .../production-node/node-components.md | 8 +-- .../production-node/node-requirements.md | 2 +- .../node-security-and-privacy.md | 2 +- .../node-setup/set-up-node-software.md | 21 ++---- .../node-setup/troubleshooting.md | 4 +- 15 files changed, 47 insertions(+), 115 deletions(-) delete mode 100644 docs/root/source/installation/_static/mongodb_cloud_manager_1.png diff --git a/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-dev-network-stack.md b/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-dev-network-stack.md index e5e9c37..d059560 100644 --- a/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-dev-network-stack.md +++ b/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-dev-network-stack.md @@ -99,8 +99,7 @@ $ bash stack.sh -h ENV[TM_VERSION] (Optional) Tendermint version to use for the setup. (default: 0.22.8) - ENV[MONGO_VERSION] - (Optional) MongoDB version to use with the setup. (default: 3.6) + ENV[AZURE_CLIENT_ID] Only required when STACK_TYPE="cloud" and STACK_TYPE_PROVIDER="azure". Steps to generate: @@ -181,8 +180,6 @@ $ export STACK_BRANCH=master #Optional, since 0.22.8 is the default tendermint version. $ export TM_VERSION=0.22.8 -#Optional, since 3.6 is the default MongoDB version. -$ export MONGO_VERSION=3.6 $ bash stack.sh ``` @@ -232,8 +229,7 @@ $ export STACK_BRANCH=master #Optional, since 0.22.8 is the default tendermint version $ export TM_VERSION=0.22.8 -#Optional, since 3.6 is the default MongoDB version. -$ export MONGO_VERSION=3.6 + $ bash stack.sh ``` diff --git a/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-as-processes.md b/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-as-processes.md index 70a3791..dea26ce 100644 --- a/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-as-processes.md +++ b/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-as-processes.md @@ -11,16 +11,16 @@ The following doc describes how to run a local node for developing Planetmint Te There are two crucial dependencies required to start a local node: -- MongoDB +- Tarantool - Tendermint and of course you also need to install Planetmint Sever from the local code you just developed. -## Install and Run MongoDB +## Install and Run Tarantool -MongoDB can be easily installed, just refer to their [installation documentation](https://docs.mongodb.com/manual/installation/) for your distro. -We know MongoDB 3.4 and 3.6 work with Planetmint. -After the installation of MongoDB is complete, run MongoDB using `sudo mongod` +Tarantool can be easily installed, just refer to their [installation documentation](https://www.tarantool.io/en/download/os-installation/ubuntu/) for your distro. +We know Tarantool 2.8 work with Planetmint. +After the installation of Tarantool is complete, run Tarantool using `tarantool` and to create a listener `box.cfg{listen=3301}` in cli of Tarantool. ## Install and Run Tendermint @@ -125,7 +125,7 @@ To execute tests when developing a feature or fixing a bug one could use the fol $ pytest -v ``` -NOTE: MongoDB and Tendermint should be running as discussed above. +NOTE: Tarantool and Tendermint should be running as discussed above. One could mark a specific test and execute the same by appending `-m my_mark` to the above command. diff --git a/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-with-docker-compose.md b/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-with-docker-compose.md index 5ee7643..de733bb 100644 --- a/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-with-docker-compose.md +++ b/docs/root/source/contributing/dev-setup-coding-and-contribution-process/run-node-with-docker-compose.md @@ -39,7 +39,7 @@ $ docker-compose up -d bdb The above command will launch all 3 main required services/processes: -* ``mongodb`` +* ``tarantool`` * ``tendermint`` * ``planetmint`` @@ -55,7 +55,7 @@ To follow the logs of the ``planetmint`` service: $ docker-compose logs -f planetmint ``` -To follow the logs of the ``mongodb`` service: + ```bash $ docker-compose logs -f mdb diff --git a/docs/root/source/installation/_static/mongodb_cloud_manager_1.png b/docs/root/source/installation/_static/mongodb_cloud_manager_1.png deleted file mode 100644 index 16073d6b370df4d22a9853a8e266eedf6b509044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12196 zcmbW7Wl$a8*5(@t?w;TdAxMzm?j(4C;O=h0HMkwzIgsEI-0hIy93&9j-QD3J!~f1y z&CGr0&QwiRS6l7f`%AC2*Lt2`q>7R(CfXY`001!M<)qXA08aJgz6%BZ<;ELK@&gyFFVs7r>YUSv5f&dW#04hLU zO8m2D_R&(nXZ*Vk-cw~ta7L+_9wwaCMDfwD0gE{J+Ty3$%w(r-&tcv3?NYs6Y{z@e9H-|6RejH`26+#p`f zA_1o?OiWDcAYa3NSGuH(LEfbH9azrb@C_^{9Gen8%vf_Hp#2cuh@`Q=Y5V*}y+ zy8Ew;evX4+E|Br`D@%&*3iMH-FzvKw{)0(%!jzACSQy;~AvrbgL7y^&FX~34jAswb zr-w+Jj{a}ciL<>h>e%=$NG$aKZJl!oPLMYm?WUl{qt!Zyg8Qa@xS^*yPYP4;#NA^P zLQ0^%coU+*mbjK$JDFZh<@H6%WR0*pIzSjh7mvLIT&&mBA5g8Y(0S-0H1s7mNo#>M zF`$~=g5Gt<%6kj%(44~#b=b>rX``|yoSfX*V36{VY!hW|U(CZ*H-FlSp$9JVmAnYN zn4gvgGW3LmuQNY+vnY*pkLj61r`(bW*5pxO79wZSmvtcWQv_|$-@u90|K{?ZUVM%p z)z-QamRMHZK4pX?(JbJrY?3F!qSy_`eHhseX}FalP)|_*ykO0Vpb{q%b;uncu4OFM zN1pKMxAhgqsqnf>9dER}S@Tyt_u85?xS{uA2{rvIK~jENQ)PcM!MI%1$)P9mnibz! zqj?sW{~-MSDIXPUa!RX9i_YyHmM+z=33V&|LgW@O$72SAm4iqm_yYEB@PQS%z<*Gzry3=F&xw-kDMgHJ} z`78Fe41PmFV2l<`C$kWp&@`BfRq>FY{@$06;ygI#Bcy8TY@CnkUaAhV9T?f`j~118 z=E{Z&y2ZkAtG>m8_gR?6=*PYgMmctbRH<{HM3NsWC7kJu0bbSZ>Sh%2LY(XF!NyRIdC z9)mI(j^jzxnJcZnL>XHuCs}#b-xwS)Wue_y#$Wy2jNnai4^)dwEwT3>y9R1d98x4IwTLEWs1{zRajg^1w**C)hgjySl1!`ZK`sLdaW7tcD7nCpvmZ-Js9 zT!5mQ0Uy~{*1J#P{UJ|7*YH>*ftP&g{q)eq5!S)?yO?Q=$xZd`vFK#;1>y0dA*I#u z``HVr&9~!|!Nd71wZ2{TM3jF~rlH+ST7piLxs%Qo00j`UE9mZ>If0ojzKQ>608F{I zMt$RtPgG&wPnFT|6q(Ml64mt%UvO*Y?#iijEE6*Lg(N4gW%yU3uS6u$B}tLJq0dlH zN876+25q$|YU# z*-35QrV2bs#o+U4!Rx>ivdoO#5!yLGIiW~C=Q|nO)8;p$pSAbh_EX6NU_fj!qPMco zguXmcL_SP%-(_k?jQ_sJ@-Y5%;5OLLsk(hnZ;yOc&~Y{e=Si-h_Z$I+gq=D~Aq=0~ zBg)U(hbl|qL+fif{r;`8#^?2?Q;tJ-UfX!X`;!ZjFjnUOnA83(cmC((_pgEGjSkRijl&o0jOMk=t+>Bj(~I7c!YA zhL3n^30U@>paqOpmo!@bL;F^vsbLL@QO3d;FPdA2p}W=7sgYX@f!wrrRgGb$i*fpt z_K)EtA&MCP?l^wMe*c(9i)4a#w8n0y<>D^Ay0%9v@POF2CR+#I1!<&N_L4FA{B5JY z@45`XU(#SLBgu_cq_L~^k49l@h?>pc8!y=EZcoVgueP7xpk@wGd*HocBlq)KR;1Et z|DOO*P;Bf-c6sJhV9|amDqxhSsy}PxJ%2d+Nk-9G{vf`lp;?OSvKD$S^QKi_)7Noy zc{Ue$zm%!HAQxrqL8QM>Al$O{gR8^#+3wBN zHZF@L=6w1J=)(mQySV9l%I;aUj3JLJy}6H7)2}79Rc!-CA+UvCui4EZg3=FJw8OC8 zJJNpG1@H99#}Wc_@W7V~E70O$N5ufb?zf3S{-Cyu+BS!U$lyqRRoN%@zdB|ugnPDL z08j$q`)Y{LvN1!b+mm!)KY)d zZvjYVtZVHQrEb0a{^0oAU8ZmNDxkN=&8`V=zZkuD-ko^*q;7InIY;b8QwdYcxUVhh zH$z$#^uF&ujJhUD0Dw>G5_UCIS5n}Up6XzPotvUJcr1wpbm~ydg>W6uFryzF`~B9_O>sjt@M2&L9~#kB9(y3$sSklnC46G6*V~ zzED!|L!!&drDf7LLs27Ki9Z{=O_aHNSeH9+QfNdswjxH z25SR59mbRD!w`JV=S1T;I+GcRhjvQ`qOtm(feeT>7k~xUKf;;Z>y)8IPjE)!zdG0} z{%Ibp-zED>jQzo9gnQ>?Y%j5|n4HB4AHLjC&`_`WWF!6e;%VekX3J4?>zweCPkY1# zxyHccSJH=x5CGKl#00AMCEoV}A;3l{-;$yVxG+qhx><77x{Ov;&N74j-&jxeU-|P# zV$nr#ik|sTr)Bw+qaoZ39H@QfoiT$6-}8?ik2EtNI}aNz)%>pYS>0qK+E z4-GO7!0jPZP~0-OaJQndF^OGyuIHq)B8MyqTkiYttECpsjEnE7-uWAXT*%w$H%7Vze^iGV z<>#l&T@I_yp5^8Td8vKUnqkACuP}N?@?W7t+TpK0mvMh?=M-L4l!K2Kio6*;Y`4cV z%U-1N)lUCZEU-K(;w%i}Y+R8l7w)MOm7kFKbs+;LoqkV4Ny$h7D7UhS@l}x4zoTAI zo05U@M)VuTZ3|yOg^kOje1DMnu#jTb`Nq|G;d6rSZO1szV=4%Gy-Uj-dlU*Zwx+O# z4+NvabTX0TYIYL@Fy4DqHDdiuw7fkQQ6R{!&1u!lQzNpLYQsawRnbnIxJg`o%~xq- z0azR=H;;bo_z`aex_YXw>~y_HH>ccxmCGAP3C$3J*tnpkifr&kCBOZuAg_kkV4lh| z+X9OwvFAkwinbFgLV7yTdY2~?uh$|cteb2uQS5TJfqz{|^3bC2eecKN@>py?eRuKm;^c_L(i2!vQMF z#&%I*=9y}y6O|-zR|NfUquPq0N^|norujvnS4LM&ZxrE6J9?Xtu9l|N4Mt!3rfr>} zOe7qjTrjIc3m2mGeKue3O8W1l!=E<7&-)@vlRJuOxaO@*f(*7AIkq+*bfcA-wo7;| zwyK%wFZZ9KKYy~0IF00@0e`fsoiW&|nNHCrqTP9a#N%yjl^I{)_u-s<(u)5il2&7a zx(gp|ANeaC-}|34d^euNCj0t98McDeJXYrk8(`&VNh>#Y#`UhpjBxMTL#~!(<>dxd z2?{3}ETlIn=1fl!3PX}%nKAD)pfwmG)eNlj?za+H!oJEW$y&QQnMZt`1m!>5Lrl;> zcjLn;J&*fr&qBxL5PRHk_{r-=#xqm*Vk{``FTsAs;G1VmTK<_3*pET7z{R98wL`3q|&>^m48 z(bb1s^yRm8?!))Lj=6pQN@T(^2^MO+>grs#HMpa|*KO$FsG5SUu3_L--+cCQvDGT2 zB?mldd=ke=afgfN&hIUkXT5WroKln8=QsU8!1c9`+O|Xt#8}4=Ay~d?4_^#q*8jk1yfWa z>(p8p+!HkIj*Cm%N=&^vr-K7;AwW7u0{mN$w9)zL*}qMT@ts zt(s(Of5?t}B_YK@-gG7NIWNZv^2*<-GsOb5fL9b_fFi3&1A6(44|e!$KjhscomVBmAO= zfaEbJuKc>t#~bF|M>goO{_EDu)68n0J0nI~dj<~R<8YOH$9D>#P_4=D9KGwf&Y=8b z6>nNFux?6k9f^R6lr$X?d}Q(1j7rV=V@GIE7Uo-hAfabHr(c!a@X>2dloJ6sUBtgp z*oYeP#CJ#d>+9uYzF+)m!#%V{v!<#s_UaM|Fq0|Za}rMQ)|R}^5}u$Fs{1;c0)qVB zxDuj<{v7Z-Um$asAz}8=dea)@vXmk0FGBV{%vb^gsoKhP?7@NbK>bETT+FPb&8;xL zRpctT4uZ0`dGKj-YMJvkTsb_$+Ll}BYlI9kL$BUSaoJ_24s9<&+#1l=MDphKs$3Ke z5IFVWbzwr~h2Uxp$%gMXzQu*vYd#`?&p{?3zO)-)NfJ7e18{u82L^n9;@&AwHzh|f zwD=?WT4sMLTq5+c=EMWytpmR!(&46D9H``Xs?T`8?>JwK>weWKve$e32~t_tv1g>G zVYIg9p43Yh3T9Ra#RmXhv(-Lq(eVM4k6xn}J$ttPLSva!RD#`0e-^nK9AzXQF)ZQJ zR*k|fg$+%J<4F{j_`PL#@AfixIYRqCg&YRexOppij^p35MyA6e~HtFV`Ua^wP&h#Fi%(@V0&s0$zZB8qc>a#29P)Q0jqx}U#_u8=h8qHQ@ekce z!C~hr`I};SvKOx1^QJ-Tylzqe+GGS~N@3#jB6Tl!c5?BN=jG$HRGzx20S4Tf+M8of zG13wNy_;C^{=nCw4%8g^sLE_u(r~7$K;VJHe z+dJpL%WR(mr;?4JWx1GE*PWGFI35XzgUf9%lf!#0;QdJ`jX$6y08b4sX){1rQXk)i zFAARHAf-mV{{jfH^w+pABlaw%JW5MeDOQ2&3M}#$BinoLC&YAp{ey+wHv9&70}34A z`mE+WDm;M7po_LKthW&4@vVsRqB|~IE?t(z!*>lF?D6eIUPSp`w*r3Xxsm{!W|Jva z0+`fQm2s#}6$Y<=h}Bc}^C;_Gb6)-Xr)5Y&!KCp|DeS9Z(yU;FRTLt}WSI_K zlt}<~$A`+29}B|9wRd7a6%{~lRm}TRGlFnhpciVwtT#X4Z>&Ix>jz=0C4<-Kdp`yi ziUiVY+Y+hdoSnXACd;BF`C&8TU*jPH%Bkth?sSRyXrF!7Sx|rp)r2*fAYaJRxk2h89Pq_nk(k`yX_;6`D0`%Mi?B{9U~-^iY-r3HV?{~m;aapR`*F$e zX{DV=A8`fCcf4QeL3mLEHg|_k3`KtuWsEVJr9p zcex}SI84@`K8z@>DgnYVHq=sI(x{Q!-#g-iu&8kyO5=IbQy6__bQEkEeSQ<}B`G|` zQ$XXm17GRwd)z2Ic1K<;y3(@LCN$txCeQVu!v6jdn4PDRYI!_d(G)XWa)fz8|D1Bv zrVONt?ml{_zw$X*4bU|f6u9j@dFI35_+Vq&G;JA69@*LH-S{ZGW?Xr}=O;7IuRtlv zb#ily&02+b{Z-R0X!?AT!h-;v5Ma2(eilrW@u(AAXwVPlFTMiY6v z`x$73N-%4M7yH@D^b};j7Ib}nGEeWq9@H_$0C$Jvk<@)L(s62Yl2T19)?9O17t7v; zvjG;oFtr-)(>!-v{??Gm?$6;&k7{iTQ|upMIQRL0Ez{q(Fw+Q6fy!|$ocPe$MFiN% zXT9hCATUJJSamfG05Nm3IQgako#Py7_KPer2Zn$tNl6i?j+UP?B=sd>2w$*Fy92ED z=>2#h9lmy_9sy75^3ZvCZXv{UL@4;N)eNH>yx9_vOPO`M zBC~o7i9!a9x?wdvUr(=7ppcHzy0!1ijaAPgGru>{*g@ugya$fl29WXVksE0tQn7ED zP~Ll@uavLCj4!VL5!6LQu0Bg|jn1YQvSWrBM_Wx(LAGbsj7b{B{!h~Pzto?ts}Z3$ z&8j64Sm=q6ES1Z8gE?(`?SB>9u~FG|!pbKWzPl64RCh`mpk7v7J6KS}Kk7I-@To(B zf{6Rk(PN*PwKEU!(SNu6cws8pG^+nRA6DA{7g$sC-lb*Oa!D7S6bMxH>kie$&i)|n zjcNx3KAxM55Sxmkg4_&0)Ex5WYRw$jb>weeP-IT1xaVb~vkNsPRIz`&`{E_})l3+( zi#v@>jdwo`cWad}Cy`qu4|7IOW%e*#tuVQ!DaGe}NHdjQpuSjo`%39&%;|7PJbjke z-pas;w_iI{$}qU1vhlCocpBPTwtm9N2m-*psGgEh_W9@CrB|DLe>Htg$yNKv%`*>^ z$w#xE)B!`O$HkN*t7#CnZue8EZF&_e!&h#mWg zhL-?{Me&kX{_L1l@u?9~qRFE?s*Oyo++HfrIb2RYXs;l?le1{!Nh4^!g`u{HbPqgy z1R1lBN82obsJXp(A7`CBZg$beJT&L9te=Hmd+Yk_)lwgM-pJ$|+J>inWNfXJG&KC# zKKoc-RO=bDlIl!Fq6+n2_!f~GCW1Inz>{dEJHGtV zW5uFra4{1A@g~ns9wMkf%=WIi$-#yn!iC@T_0EQml8MeOh zHoXuB!?m|3uDuWGueX$Y>DQY5rzF+)acf&5xT?AVxD8jtszJ}3*BUpxrT}1S`T<_c z^1OUo(C}h8@zl=9Zhh51#;;4H0h@a0*I7a%w>$uJ#~VZvHV~7tWe=f?MI`>Ai>I-K z=DSnC^+@$(Y@d6hL>TbM<_8xDOG@9n#wzm2SeGPAxL*1}@qJ|O)DYeXi@1Y2hzy3$ z+GAG@0~o%s^Bno<8~&htDu3)5^vv4gj2y{r4I9Q!5f~e^e=TTplSJ6K;jxC$C3I3q zpY!1^KC?EHBFwzr66&*eRel5n{!Jw$FFTO!+P78Em0vMp#0$K}NW%iZo5HAG?1~-A z#MR#Q>~LsTFD;bZdE-n72S0C`)ZA7-vCClC>r)T=$~|YzX*)UH5OYd5Hu;M!jJ2g# z5ZqLw+vI+6nQvaJcrpkW{Y=^t3eJ_0K>%i-*I5A|i%|T;fil2Cdf=K60IF%|EPDSM z#=6A}E_@e=KZ7P&NE{}`H_2lFRH>A+<5?NC8uko5;HX3L4X+}EzlpGO4d(?cIKxIB zR};RSwMqsA!$z0NwSr*_0H+zMkJ@3C#Dxl2ME}Y1NvY9gq{J~9OCOy1U9Cml89>p! z{N?t^3#0oVcXH@Ix}g6LCI4S`DYX4K_u1R&6e1&Q=%&hn;iL3yWZU+8`DyTCxE%Z( zBvwtb^^4=MH&glZj>g#Yx1T?upn!+Pf8K3%_y4;?8W4Kvdo=}R`+b1ySReZP|K!X{ z4+(KD3Z)W~;u6teqeso==zLxofd}>n0(hBtjtJ0+hh4w|j zg%vY+$LF_vy_)R)hWP@_Ro0&GHDiV2;$`TH85mC@owkm1hc%bY488^#*cVI&(8Gn5 z&!4ex{^?+#Jr(xdc~f$V%93ceg#X+r*fIM`&nB8vhJI#76n>Sg;Ug{+Jm7W9z)G9y z{GudV^96ac-K($CtRN9E(b;OU_fl2t!XttWiCz$MB89?hE~X zwNv$-9&-!OC#y4YrXF?}=DYW5Z}w$;mzO68Z(-w~EH|iBo=AJ>7SwgWd|vv%XTor} zvJ6hIl^)8TC)ZN+lxxA7hJ4vtQFYrbkQsxcPP~IawAL6Wa|J6u9LL}BtCc{WYA}~u z9kXhcX z@9v$q_?W{N%b8!HPL|`b>GZ_rY<_vUr#?e*s!^pkY{sxU;eYuxJ& z(_oE#Dq`c!VX@hr&Hzd>Xos`rbv^-3?@zj;@zsyrI1;d`{J8c*SGlzlGS5U&(*`y% zR}4xvOWcw1y7lEwQ=D$TmOIvCz4{0QVkwQyGE>93w@<=D+=Mb9EQ=@2-${duM5r`h z$>l*>yD_#k-E|IngmPk$>TrN;bx!;TE2FkU=0Aq)%-jlvYzDZxOIE<+ZMK}@f)Esm z7y%&9L%B%|{BvPuiVrIT7wcpX(@Oe~CVGX-bx6{{rQ1eAgbM6;%^r%gcK(Z73)Q(5 zzY875q660X@}&4qU8&5@yaeg!a2Is3s8_#2LPd_h4VG0QWOdv@QbBmikSAo?%QfMncb|B}0q zl;hg~<9!EEw&ON6NfD38(b(i6*y;mAQP$)od;9(OQi+J-lsiLn$(OZz1;^I3Fami! z{Q~ucuw+Cp^`A}WDdvI?()T(I6g`4MWaONLJ(9nzB9>H~BjJw!!|f{6 z+Y!Bir2j%_3`4^uz4*_pnon)}xn6$Ib2>mFl^8eUdQd*-JjMWF`3c+Hhk%_?|7QWA#<#`;3wEyIt-_ z928v!vx3MPbbWD(=4Q_N@GH(d5CNdyC<6dI!F$Mrju*%WL(oYrWa(dLl((aHU+@SV zHqm%b0oFhAcAyYoXDkxBZLjA1EA%Ux`RkXm5td|uw4A8D5}$N>M%c|FpvE57F-IhN(aoF8f2B-H zI8q^;sXrI14l@4eP{TFWSpKoWA{vz~VQ?;E@8#I@*`)A|X8hDpR-W31^pD%{O_<9A zLC%MYq1`Zl~JF2*@HKYNePEC!7Y8EmaQjy+lS_1Q%gsg-74)pn^q%kLI~gH(d)Z&o z4}bZDagGkMt>y>YC(c~y1=on|G>>j{Ild{whREs-@K;I$b{}=(h3xiM`t(@g|E36O zG|k9PP33M6)`xmsN#aBEgUUns`*j#Q=j044Q0l&Xb&NeL?5HC~vDUa#ysX5>Y}kpj zTYq~oWMOOc<2VsJ>AdXTVuk#T4VG`Z#*ZAwqYE3K)M1YUw`YEiYMZU0fQSA7yN4yk z=mdM!75gRAy8I_-%FfUf|D8t|vnBTTUM||B9Ob*j1bEzzfxFG|VCkjEcl2gfJm=pe z^_i%8{j;=aU$!?mfO*-ix$)XW@~HQmFEWs!E3fqZ&^oWY7u`{-e$9l__fep$o+4(Y zqpICwTSPn6Z~LF2VO%W-Ap}>g$LP6;uXTL7gcoy=sB+*pm9i^OYS6Nd-l{K$@wWy@ z`W0j4m@};_&hd@8Ec-j1j&SyUWSdC%0*to#=rS4_a z4C8yzN)}>9geUr`(nW$mF|lPK?bAWHICpepa_1hv5uCJ!k#i-lb+cN*XWLH&D*HR3 z4qsoTl|8)rWb5oNO)8r(@NPak9hU}?<0j|%OF|W|OLBiD2rDEa$XaWwbm2=dFmI~m z^81bV|8UShFmP3V+LY#5IhL-s^i?|V%Mhi)%AU`%j^}@)lQD9)_c`UfKJHar#&wLc zy5|^Kv9G+U3G#RkFTOJ^N(dcl!K`TZY7)?86=%TENRdqASD0|^K@uQY(9slMda%z$tHl{=8f>xFU1^W!hW=MT3#5R9igc7TKP zd^Pf8e5LOC-hpQf^*Gf^!M^EJ{A4Ay^f z?ET*kBI`zoyTVZ=|=)e^?UkZ*X%eIEYyibp2T}+sw@0=iKO>ZLdXWEv!b! zQcC~!0Pl;F@Cpn9@jhLx3fSGv&ODdaU4T?Ly#SyJbaZ0RauuqUd;R<%-a9zpR*6gJ z_(5YKI9m>g4{=D)NVN@biiQIM_iSG~=Xl#J?AL7p6;G|;<#+}}V70|Exdp+ASH9CW zq8I?kgr&F9G2mxdTf83Uw@C$L98E?LC5VoA72X`vGQg3U;Tb?tqU+0ME5`T%D!uC* zIXH<;!aZ?>K&Ko*v!Y^5PcLs+QJMp8C%mFiWt)_C-|eP$cDk6bhHS$Gb|M`eAdg4H zEZaR`g3W=xJzs-vb-}poXtmyd*6va@`P)fL+UBeA$i1oRdgLBLS~8=m+qlL1K`Tn# zh!*XZP2&eW>V38EWm9Vg-E73^nN0y9znML|-P8{ENqTNS}bItQT~BG-Q5YwY0- z7y(z_9^)*9Jud>lanUy7P6pG^Q%%CPlI0!TIGTRl?^tjsHq{$8AC1|NORlYq0K9ib zl;yV{`>FC4zVMGWm?&%EzE*kDiJV@$v?=r-?fNgXc_#FLn#$W3P5B)m#}UE?Y4}uA zh86Ky_7%ZC8#xdDE z^rCfNNJ8Uj2&>Trv-i+^a7qhQNIP0`OvC2RjX9z-cxwU*%v4g1yy@Se7!@2^Zh6}Mp)WiH0Ffi;8NA(V6Dbn zP%0x;jK|vsH>&}&h7%G3g%z#b>6(ZG5yQDY?D<{3oi}Y`yqIl+#5es3T2XTQF*CZI$Rse~%#!RwVgC)wjdU6u>)BV2A~!$`*@EGE(~r#K8^Fb9C$Ho|w?N^C>Ac%G zl_4$23%|9wbs|3f7P{s2Th`JW4ZMTwqmwcRX_dhZ+{N@E#6s8mMI)h4D66XoG-%f} z06@?FV%cE>9fk+b>)YCtzmAGzDH&G7FuvN%e7YxQ{sh<5*Lzh>u1e0Mjt-kaZmOF{ zYUSttUM`4%iFR^BSi}hXr5fZr6Mp8wbDYDAl|qvg8%I}f$@*D4PrlR-7w43fV4z}U zdV4l>8dE=RI(bB2Tk?pUsR>CCRoyfBF5k>oKW19U5H*J(0WXgJeN2G#_pz)Sp5C-L zQ3RG1tNd5b=K}=L&Ke8Fo9m-z`s;68?TnMWLq2tE7AVww|(~MkQVe~|LNv#6yf_V&GUOC{SsbcN3ue%5|z9J zSu);DAK2-4HSv-3vZ(S$1P=uS54NG!l7==HmanWsWgNq0YyK|(sxToE6?b}*T-~Jh z-~Wxc{-1Or)HfhkR73Sn0vhxJ6h`RW(p(I+Z#CS!)Q$pAXy~I14h#PQ2mkj%@c% -db.createUser({user: "", pwd: "", roles: [{role: "readWrite", db: ""}]}) -``` - -* `database.login` is the user's username. -* `database.password` is the user's password, given in plaintext. -* `database.ca_cert`, `database.certfile`, `database.keyfile`, `database.crlfile`, and `database.keyfile_passphrase` are not used so they can have their default values. - -**x.509 Certificate Authentication** - -To use x.509 certificate authentication, a MongoDB instance must be running somewhere (maybe in another machine), it must already have a database for use by Planetmint (usually named `planetmint`, which is the default `database.name`), and that database must be set up to use x.509 authentication. See the MongoDB docs about how to do that. - -* `database.login` is the user's username. -* `database.password` isn't used so the default value (`null`) is fine. -* `database.ca_cert`, `database.certfile`, `database.keyfile` and `database.crlfile` are the paths to the CA, signed certificate, private key and certificate revocation list files respectively. -* `database.keyfile_passphrase` is the private key decryption passphrase, specified in plaintext. - -**Example using environment variables** - -```text -export PLANETMINT_DATABASE_BACKEND=localmongodb -export PLANETMINT_DATABASE_HOST=localhost -export PLANETMINT_DATABASE_PORT=27017 -export PLANETMINT_DATABASE_NAME=database8 -export PLANETMINT_DATABASE_CONNECTION_TIMEOUT=5000 -export PLANETMINT_DATABASE_MAX_TRIES=3 -``` +To use username/password authentication, a Tarantool instance must already be running somewhere (maybe in another machine), it must already have a spaces for use by Planetmint, and that database must already have a "readWrite" user with associated username and password. **Default values** -If (no environment variables were set and there's no local config file), or you used `planetmint -y configure localmongodb` to create a default local config file for a `localmongodb` backend, then the defaults will be: - ```js "database": { - "backend": "localmongodb", + "backend": "tarantool", "host": "localhost", - "port": 27017, - "name": "planetmint", - "connection_timeout": 5000, - "max_tries": 3, - "replicaset": null, - "login": null, + "port": 3301, + "username": null, "password": null - "ssl": false, - "ca_cert": null, - "certfile": null, - "keyfile": null, - "crlfile": null, - "keyfile_passphrase": null, + } ``` diff --git a/docs/root/source/installation/node-setup/planetmint-cli.md b/docs/root/source/installation/node-setup/planetmint-cli.md index 08706ae..a3bab36 100644 --- a/docs/root/source/installation/node-setup/planetmint-cli.md +++ b/docs/root/source/installation/node-setup/planetmint-cli.md @@ -25,18 +25,18 @@ Show the version number. `planetmint -v` does the same thing. Generate a local configuration file (which can be used to set some or all [Planetmint node configuration settings](configuration)). It will ask you for the values of some configuration settings. If you press Enter for a value, it will use the default value. -At this point, only one database backend is supported: `localmongodb`. +At this point, only one database backend is supported: `tarantool`. If you use the `-c` command-line option, it will generate the file at the specified path: ```text -planetmint -c path/to/new_config.json configure localmongodb +planetmint -c path/to/new_config.json configure tarantool ``` If you don't use the `-c` command-line option, the file will be written to `$HOME/.planetmint` (the default location where Planetmint looks for a config file, if one isn't specified). If you use the `-y` command-line option, then there won't be any interactive prompts: it will use the default values for all the configuration settings. ```text -planetmint -y configure localmongodb +planetmint -y configure tarantool ``` @@ -47,13 +47,13 @@ Show the values of the [Planetmint node configuration settings](configuration). ## planetmint init -Create a backend database (local MongoDB), all database tables/collections, +Create a backend database (local tarantool), all database tables/collections, various backend database indexes, and the genesis block. ## planetmint drop -Drop (erase) the backend database (the local MongoDB database used by this node). +Drop (erase) the backend database (the local tarantool database used by this node). You will be prompted to make sure. If you want to force-drop the database (i.e. skipping the yes/no prompt), then use `planetmint -y drop` @@ -148,7 +148,7 @@ $ planetmint election new migration --private-key /home/user/.tendermint/config/ ``` Concluded chain migration elections halt block production at whichever block height they are approved. -Afterwards, validators are supposed to upgrade Tendermint, set new `chain_id`, `app_hash`, and `validators` (to learn these values, use the [election show](#election-show) command) in `genesis.json`, make and save a MongoDB dump, and restart the system. +Afterwards, validators are supposed to upgrade Tendermint, set new `chain_id`, `app_hash`, and `validators` (to learn these values, use the [election show](#election-show) command) in `genesis.json`, make and save a tarantool dump, and restart the system. For more details about how chain migrations work, refer to [Type 3 scenarios in BEP-42](https://github.com/planetmint/BEPs/tree/master/42). diff --git a/docs/root/source/installation/node-setup/production-node/node-components.md b/docs/root/source/installation/node-setup/production-node/node-components.md index 44f2abe..a1759e7 100644 --- a/docs/root/source/installation/node-setup/production-node/node-components.md +++ b/docs/root/source/installation/node-setup/production-node/node-components.md @@ -10,17 +10,15 @@ Code is Apache-2.0 and docs are CC-BY-4.0 A production Planetmint node must include: * Planetmint Server -* MongoDB Server 3.4+ (mongod) +* Tarantool * Tendermint * Storage for MongoDB and Tendermint It could also include several other components, including: * NGINX or similar, to provide authentication, rate limiting, etc. -* An NTP daemon running on all machines running Planetmint Server or mongod, and possibly other machines -* Probably _not_ MongoDB Automation Agent. It's for automating the deployment of an entire MongoDB cluster. -* MongoDB Monitoring Agent -* MongoDB Backup Agent +* An NTP daemon running on all machines running Planetmint Server or tarantool, and possibly other machines + * Log aggregation software * Monitoring software * Maybe more diff --git a/docs/root/source/installation/node-setup/production-node/node-requirements.md b/docs/root/source/installation/node-setup/production-node/node-requirements.md index 077a638..453d7c7 100644 --- a/docs/root/source/installation/node-setup/production-node/node-requirements.md +++ b/docs/root/source/installation/node-setup/production-node/node-requirements.md @@ -7,7 +7,7 @@ Code is Apache-2.0 and docs are CC-BY-4.0 # Production Node Requirements -**This page is about the requirements of Planetmint Server.** You can find the requirements of MongoDB, Tendermint and other [production node components](node-components) in the documentation for that software. +**This page is about the requirements of Planetmint Server.** You can find the requirements of Tarantool, Tendermint and other [production node components](node-components) in the documentation for that software. ## OS Requirements diff --git a/docs/root/source/installation/node-setup/production-node/node-security-and-privacy.md b/docs/root/source/installation/node-setup/production-node/node-security-and-privacy.md index 4841c94..779d1de 100644 --- a/docs/root/source/installation/node-setup/production-node/node-security-and-privacy.md +++ b/docs/root/source/installation/node-setup/production-node/node-security-and-privacy.md @@ -14,5 +14,5 @@ Here are some references about how to secure an Ubuntu 18.04 server: Also, here are some recommendations a node operator can follow to enhance the privacy of the data coming to, stored on, and leaving their node: -- Ensure that all data stored on a node is encrypted at rest, e.g. using full disk encryption. This can be provided as a service by the operating system, transparently to Planetmint, MongoDB and Tendermint. +- Ensure that all data stored on a node is encrypted at rest, e.g. using full disk encryption. This can be provided as a service by the operating system, transparently to Planetmint, Tarantool and Tendermint. - Ensure that all data is encrypted in transit, i.e. enforce using HTTPS for the HTTP API and the Websocket API. This can be done using NGINX or similar, as we do with the IPDB Testnet. diff --git a/docs/root/source/installation/node-setup/set-up-node-software.md b/docs/root/source/installation/node-setup/set-up-node-software.md index afce6d6..ec90189 100644 --- a/docs/root/source/installation/node-setup/set-up-node-software.md +++ b/docs/root/source/installation/node-setup/set-up-node-software.md @@ -5,11 +5,11 @@ SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) Code is Apache-2.0 and docs are CC-BY-4.0 ---> -# Set Up Planetmint, MongoDB and Tendermint +# Set Up Planetmint, Tarantool and Tendermint We now install and configure software that must run in every Planetmint node: Planetmint Server, -MongoDB and Tendermint. +Tarantool and Tendermint. ## Install Planetmint Server @@ -69,25 +69,18 @@ under `"wsserver"`: where `bnode.example.com` should be replaced by your node's actual subdomain. -## Install (and Start) MongoDB +## Install (and Start) Tarantool -Install a recent version of MongoDB. +Install a recent version of Tarantool. Planetmint Server requires version 3.4 or newer. ``` -sudo apt install mongodb +curl -L https://tarantool.io/DDJLJzv/release/2.8/installer.sh | bash + +sudo apt-get -y install tarantool ``` -If you install MongoDB using the above command (which installs the `mongodb` package), -it also configures MongoDB, starts MongoDB (in the background), -and installs a MongoDB startup script -(so that MongoDB will be started automatically when the machine is restarted). -Note: The `mongodb` package is _not_ the official MongoDB package -from MongoDB the company. If you want to install the official MongoDB package, -please see -[the MongoDB documentation](https://docs.mongodb.com/manual/installation/). -Note that installing the official package _doesn't_ also start MongoDB. ## Install Tendermint diff --git a/docs/root/source/installation/node-setup/troubleshooting.md b/docs/root/source/installation/node-setup/troubleshooting.md index aa679c0..f72bca8 100644 --- a/docs/root/source/installation/node-setup/troubleshooting.md +++ b/docs/root/source/installation/node-setup/troubleshooting.md @@ -2,7 +2,7 @@ ## General Tips -- Check the Planetmint, Tendermint and MongoDB logs. +- Check the Planetmint, Tendermint and Tarantool logs. For help with that, see the page about [Logging and Log Rotation](../appendices/log-rotation). - Try Googling the error message. @@ -36,7 +36,7 @@ addr_book_strict = false If you want to refresh your node back to a fresh empty state, then your best bet is to terminate it and deploy a new machine, but if that's not an option, then you can: -* drop the `planetmint` database in MongoDB using `planetmint drop` (but that only works if MongoDB is running) +* drop the `planetmint` database in tarantool using `planetmint drop` (but that only works if tarantool is running) * reset Tendermint using `tendermint unsafe_reset_all` * delete the directory `$HOME/.tendermint`