resolved merge conflicts

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2022-05-16 16:28:44 +02:00
commit 7816d23de2
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A
11 changed files with 84 additions and 59 deletions

View File

@ -3,9 +3,17 @@
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) # SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
# Code is Apache-2.0 and docs are CC-BY-4.0 # Code is Apache-2.0 and docs are CC-BY-4.0
version: 2
build: build:
image: latest os: ubuntu-20.04
tools:
python: "3.9"
python: python:
version: 3.9 install:
pip_install: true - method: setuptools
path: .
- requirements: docs/root/requirements.txt

View File

@ -2,7 +2,7 @@
# #
# You can set these variables from the command line. # You can set these variables from the command line.
SPHINXOPTS = -W SPHINXOPTS =
SPHINXBUILD = sphinx-build SPHINXBUILD = sphinx-build
PAPER = a4 PAPER = a4
BUILDDIR = build BUILDDIR = build

View File

@ -1,10 +1,38 @@
Sphinx~=1.0 aafigure==0.6
recommonmark>=0.4.0 alabaster==0.7.12
sphinx-rtd-theme>=0.1.9 Babel==2.10.1
sphinxcontrib-napoleon>=0.4.4 certifi==2021.10.8
sphinxcontrib-httpdomain>=1.5.0 charset-normalizer==2.0.12
pyyaml>=4.2b1 commonmark==0.9.1
aafigure>=0.6 docutils==0.17.1
packaging~=18.0 idna
wget imagesize==1.3.0
jinja2==3.0.0 importlib-metadata==4.11.3
Jinja2==3.0.0
markdown-it-py==2.1.0
MarkupSafe==2.1.1
mdit-py-plugins==0.3.0
mdurl==0.1.1
myst-parser==0.17.2
packaging==21.3
pockets==0.9.1
Pygments==2.12.0
pyparsing==3.0.8
pytz==2022.1
PyYAML>=5.4.0
requests>=2.25i.1
six==1.16.0
snowballstemmer==2.2.0
Sphinx==4.5.0
sphinx-rtd-theme==1.0.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-httpdomain==1.8.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-napoleon==0.7
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
urllib3==1.26.9
wget==3.2
zipp==3.8.0

View File

@ -23,9 +23,6 @@ import sys
import inspect import inspect
from os import rename, remove from os import rename, remove
from recommonmark.parser import CommonMarkParser
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
@ -51,9 +48,12 @@ sys.path.insert(0,parentdir)
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
project = 'Planetmint'
import sphinx_rtd_theme import sphinx_rtd_theme
extensions = [ extensions = [
'myst_parser',
'sphinx.ext.autosectionlabel', 'sphinx.ext.autosectionlabel',
'sphinx.ext.autodoc', 'sphinx.ext.autodoc',
'sphinx.ext.intersphinx', 'sphinx.ext.intersphinx',
@ -99,10 +99,6 @@ autodoc_default_options = {
'members': None, 'members': None,
} }
source_parsers = {
'.md': CommonMarkParser,
}
# The suffix(es) of source filenames. # The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string: # You can specify multiple suffix as a list of string:
# #
@ -115,9 +111,8 @@ source_suffix = ['.rst', '.md']
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = 'index'
autosectionlabel_prefix_document = True
# General information about the project. # General information about the project.
project = 'Planetmint'
now = datetime.datetime.now() now = datetime.datetime.now()
copyright = str(now.year) + ', Planetmint Contributors' copyright = str(now.year) + ', Planetmint Contributors'
author = 'Planetmint Contributors' author = 'Planetmint Contributors'
@ -137,7 +132,7 @@ release = _version['__version__']
# #
# This is also used if you do content translation via gettext catalogs. # This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases. # Usually you set "language" from the command line for these cases.
language = None language = 'en'
# There are two options for replacing |today|: either, you set today to some # There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used: # non-false value, then it is used:

View File

@ -4,7 +4,7 @@ Content-Type: application/json
{ {
"assets": "/assets/", "assets": "/assets/",
"blocks": "/blocks/", "blocks": "/blocks/",
"docs": "https://docs.planetmint.com/projects/server/en/v0.9.1/http-client-server-api.html", "docs": "https://docs.planetmint.com/projects/server/en/v0.9.2/http-client-server-api.html",
"metadata": "/metadata/", "metadata": "/metadata/",
"outputs": "/outputs/", "outputs": "/outputs/",
"streams": "ws://localhost:9985/api/v1/streams/valid_transactions", "streams": "ws://localhost:9985/api/v1/streams/valid_transactions",

View File

@ -6,7 +6,7 @@ Content-Type: application/json
"v1": { "v1": {
"assets": "/api/v1/assets/", "assets": "/api/v1/assets/",
"blocks": "/api/v1/blocks/", "blocks": "/api/v1/blocks/",
"docs": "https://docs.planetmint.com/projects/server/en/v0.9.1/http-client-server-api.html", "docs": "https://docs.planetmint.com/projects/server/en/v0.9.2/http-client-server-api.html",
"metadata": "/api/v1/metadata/", "metadata": "/api/v1/metadata/",
"outputs": "/api/v1/outputs/", "outputs": "/api/v1/outputs/",
"streams": "ws://localhost:9985/api/v1/streams/valid_transactions", "streams": "ws://localhost:9985/api/v1/streams/valid_transactions",
@ -14,7 +14,7 @@ Content-Type: application/json
"validators": "/api/v1/validators" "validators": "/api/v1/validators"
} }
}, },
"docs": "https://docs.planetmint.com/projects/server/en/v0.9.1/", "docs": "https://docs.planetmint.com/projects/server/en/v0.9.2/",
"software": "Planetmint", "software": "Planetmint",
"version": "0.9.1" "version": "0.9.2"
} }

View File

@ -7,7 +7,7 @@ Code is Apache-2.0 and docs are CC-BY-4.0
# Properties of Planetmint # Properties of Planetmint
### Decentralization ## Decentralization
Decentralization means that no one owns or controls everything, and there is no single point of failure. Decentralization means that no one owns or controls everything, and there is no single point of failure.
@ -23,12 +23,12 @@ If someone has (or gets) admin access to a node, they can mess with that node (e
Its worth noting that not even the admin or superuser of a node can transfer assets. The only way to create a valid transfer transaction is to fulfill the current crypto-conditions on the asset, and the admin/superuser cant do that because the admin user doesnt have the necessary information (e.g. private keys). Its worth noting that not even the admin or superuser of a node can transfer assets. The only way to create a valid transfer transaction is to fulfill the current crypto-conditions on the asset, and the admin/superuser cant do that because the admin user doesnt have the necessary information (e.g. private keys).
### Byzantine Fault Tolerance ## Byzantine Fault Tolerance
[Tendermint](https://tendermint.io/) is used for consensus and transaction replication, [Tendermint](https://tendermint.io/) is used for consensus and transaction replication,
and Tendermint is [Byzantine Fault Tolerant (BFT)](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance). and Tendermint is [Byzantine Fault Tolerant (BFT)](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance).
### Node Diversity ## Node Diversity
Steps should be taken to make it difficult for any one actor or event to control or damage “enough” of the nodes. (Because Planetmint Server uses Tendermint, "enough" is ⅓.) There are many kinds of diversity to consider, listed below. It may be quite difficult to have high diversity of all kinds. Steps should be taken to make it difficult for any one actor or event to control or damage “enough” of the nodes. (Because Planetmint Server uses Tendermint, "enough" is ⅓.) There are many kinds of diversity to consider, listed below. It may be quite difficult to have high diversity of all kinds.
@ -39,7 +39,7 @@ Steps should be taken to make it difficult for any one actor or event to control
Note: If all the nodes are running the same code, i.e. the same implementation of Planetmint, then a bug in that code could be used to compromise all of the nodes. Ideally, there would be several different, well-maintained implementations of Planetmint Server (e.g. one in Python, one in Go, etc.), so that a consortium could also have a diversity of server implementations. Similar remarks can be made about the operating system. Note: If all the nodes are running the same code, i.e. the same implementation of Planetmint, then a bug in that code could be used to compromise all of the nodes. Ideally, there would be several different, well-maintained implementations of Planetmint Server (e.g. one in Python, one in Go, etc.), so that a consortium could also have a diversity of server implementations. Similar remarks can be made about the operating system.
### Immutability ## Immutability
The blockchain community often describes blockchains as “immutable.” If we interpret that word literally, it means that blockchain data is unchangeable or permanent, which is absurd. The data _can_ be changed. For example, a plague might drive humanity extinct; the data would then get corrupted over time due to water damage, thermal noise, and the general increase of entropy. The blockchain community often describes blockchains as “immutable.” If we interpret that word literally, it means that blockchain data is unchangeable or permanent, which is absurd. The data _can_ be changed. For example, a plague might drive humanity extinct; the data would then get corrupted over time due to water damage, thermal noise, and the general increase of entropy.

View File

@ -9,19 +9,17 @@ Code is Apache-2.0 and docs are CC-BY-4.0
There is some specialized terminology associated with Planetmint. To get started, you should at least know the following: There is some specialized terminology associated with Planetmint. To get started, you should at least know the following:
### Planetmint Node ## Planetmint Node
<<<<<<< HEAD **Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.com/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
A **Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.com/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
=======
A **Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.io/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
>>>>>>> 3bfc3298f8210b135084e823eedd47f213538088
### Planetmint Network **Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.io/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
## Planetmint Network
A set of Planetmint nodes can connect to each other to form a **Planetmint network**. Each node in the network runs the same software. A Planetmint network may have additional machines to do things such as monitoring. A set of Planetmint nodes can connect to each other to form a **Planetmint network**. Each node in the network runs the same software. A Planetmint network may have additional machines to do things such as monitoring.
### Planetmint Consortium ## Planetmint Consortium
The people and organizations that run the nodes in a Planetmint network belong to a **Planetmint consortium** (i.e. another organization). A consortium must have some sort of governance structure to make decisions. If a Planetmint network is run by a single company, then the "consortium" is just that company. The people and organizations that run the nodes in a Planetmint network belong to a **Planetmint consortium** (i.e. another organization). A consortium must have some sort of governance structure to make decisions. If a Planetmint network is run by a single company, then the "consortium" is just that company.
@ -29,7 +27,7 @@ The people and organizations that run the nodes in a Planetmint network belong t
A Planetmint network is just a bunch of connected nodes. A consortium is an organization which has a Planetmint network, and where each node in that network has a different operator. A Planetmint network is just a bunch of connected nodes. A consortium is an organization which has a Planetmint network, and where each node in that network has a different operator.
### Transactions ## Transactions
Are described in detail in `Planetmint Transactions Spec <https://github.com/planetmint/BEPs/tree/master/tx-specs/>`_ . Are described in detail in `Planetmint Transactions Spec <https://github.com/planetmint/BEPs/tree/master/tx-specs/>`_ .
@ -80,10 +78,7 @@ You could do more elaborate things too. As one example, each time someone writes
### Role-Based Access Control (RBAC) ### Role-Based Access Control (RBAC)
<<<<<<< HEAD
In September 2017, we published a [blog post about how one can define an RBAC sub-system on top of Planetmint](https://blog.planetmint.com/role-based-access-control-for-planetmint-assets-b7cada491997). In September 2017, we published a [blog post about how one can define an RBAC sub-system on top of Planetmint](https://blog.planetmint.com/role-based-access-control-for-planetmint-assets-b7cada491997).
=======
In September 2017, BigchainDB published a [blog post about how one can define an RBAC sub-system on top of Planetmint](https://blog.bigchaindb.com/role-based-access-control-for-planetmint-assets-b7cada491997).
>>>>>>> 3bfc3298f8210b135084e823eedd47f213538088
At the time of writing (January 2018), doing so required the use of a plugin, so it's not possible using standard Planetmint (which is what's available on the [IPDB Testnet](https://test.ipdb.io/>). That may change in the future. At the time of writing (January 2018), doing so required the use of a plugin, so it's not possible using standard Planetmint (which is what's available on the [IPDB Testnet](https://test.ipdb.io/>). That may change in the future.
If you're interested, `contact IPDB <contact@ipdb.global>`_. If you're interested, `contact IPDB <contact@ipdb.global>`_.

View File

@ -3,7 +3,7 @@
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) # SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
# Code is Apache-2.0 and docs are CC-BY-4.0 # Code is Apache-2.0 and docs are CC-BY-4.0
__version__ = '0.9.1' __version__ = '0.9.2'
__short_version__ = '0.9' __short_version__ = '0.9'
# Supported Tendermint versions # Supported Tendermint versions

View File

@ -35,6 +35,15 @@ def check_setuptools_features():
' $ pip3 install --upgrade setuptools\n' ' $ pip3 install --upgrade setuptools\n'
'and then run this command again') 'and then run this command again')
import pathlib
import pkg_resources
with pathlib.Path('docs/root/requirements.txt').open() as requirements_txt:
docs_require= [
str(requirement)
for requirement
in pkg_resources.parse_requirements(requirements_txt)
]
check_setuptools_features() check_setuptools_features()
@ -43,18 +52,8 @@ dev_require = [
'ipython', 'ipython',
'watchdog', 'watchdog',
'logging_tree', 'logging_tree',
'pre-commit' 'pre-commit',
] 'twine'
docs_require = [
'Sphinx~=1.0',
'recommonmark>=0.4.0',
'sphinx-rtd-theme>=0.1.9',
'sphinxcontrib-httpdomain>=1.5.0',
'sphinxcontrib-napoleon>=0.4.4',
'aafigure>=0.6',
'wget',
'jinja2==3.0.0'
] ]
tests_require = [ tests_require = [

View File

@ -35,5 +35,5 @@ deps =
typing-extensions typing-extensions
-r{toxinidir}/docs/root/requirements.txt -r{toxinidir}/docs/root/requirements.txt
extras = None extras = None
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html commands = sphinx-build -b html -d {envtmpdir}/doctrees . {envtmpdir}/html