mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-24 22:45:44 +00:00
resolved merge conflicts
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
commit
7816d23de2
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
|||||||
|
|
||||||
It’s 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 can’t do that because the admin user doesn’t have the necessary information (e.g. private keys).
|
It’s 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 can’t do that because the admin user doesn’t 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.
|
||||||
|
|
||||||
|
|||||||
@ -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>`_.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
23
setup.py
23
setup.py
@ -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 = [
|
||||||
|
|||||||
2
tox.ini
2
tox.ini
@ -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
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user