diff --git a/docs/root/.vscode/settings.json b/docs/root/.vscode/settings.json new file mode 100644 index 0000000..65e1ec0 --- /dev/null +++ b/docs/root/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "makefile.extensionOutputFolder": "./.vscode" +} \ No newline at end of file diff --git a/docs/root/requirements.txt b/docs/root/requirements.txt index 7c839f5..d80d8f1 100644 --- a/docs/root/requirements.txt +++ b/docs/root/requirements.txt @@ -38,3 +38,4 @@ wget==3.2 zipp==3.8.0 nest-asyncio==1.5.5 sphinx-press-theme==0.8.0 +sphinx-documatt-theme diff --git a/docs/root/source/_static/planet-mint-logo.png b/docs/root/source/_static/planet-mint-logo.png new file mode 100644 index 0000000..c923c03 Binary files /dev/null and b/docs/root/source/_static/planet-mint-logo.png differ diff --git a/docs/root/source/_static/planet-mint-logo.svg b/docs/root/source/_static/planet-mint-logo.svg new file mode 100644 index 0000000..b8aa071 --- /dev/null +++ b/docs/root/source/_static/planet-mint-logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/root/source/_static/planetmint-logo.png b/docs/root/source/_static/planetmint-logo.png new file mode 100644 index 0000000..c923c03 Binary files /dev/null and b/docs/root/source/_static/planetmint-logo.png differ diff --git a/docs/root/source/_static/planetmint-logo.svg b/docs/root/source/_static/planetmint-logo.svg new file mode 100644 index 0000000..b8aa071 --- /dev/null +++ b/docs/root/source/_static/planetmint-logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/root/source/_static/planetmint350x150.png b/docs/root/source/_static/planetmint350x150.png new file mode 100644 index 0000000..3d10d7a Binary files /dev/null and b/docs/root/source/_static/planetmint350x150.png differ diff --git a/docs/root/source/_static/planetmint360x150white.png b/docs/root/source/_static/planetmint360x150white.png new file mode 100644 index 0000000..70c1f59 Binary files /dev/null and b/docs/root/source/_static/planetmint360x150white.png differ diff --git a/docs/root/source/basic-usage.md b/docs/root/source/basic-usage.md index 243a161..ccb54f9 100644 --- a/docs/root/source/basic-usage.md +++ b/docs/root/source/basic-usage.md @@ -119,13 +119,19 @@ of the outgoing paperclips (100). ### Transaction Validity When a node is asked to check if a transaction is valid, it checks several -things. We documented those things in a post on *The Planetmint Blog*: -["What is a Valid Transaction in Planetmint?"](https://blog.planetmint.io/what-is-a-valid-transaction-in-planetmint-9a1a075a9598) +things. This got documentet by a BigchainDB post (previous version of Planetmint) at*The BigchainDB Blog*: +["What is a Valid Transaction in BigchainDB?"](https://blog.bigchaindb.com/what-is-a-valid-transaction-in-planetmint-9a1a075a9598) (Note: That post was about Planetmint Server v1.0.0.) ### Example Transactions There are example Planetmint transactions in -[the HTTP API documentation](./connecting/api/http-client-server-api) +[the HTTP API documentation](./connecting/http-client-server-api) and [the Python Driver documentation](./connecting/drivers). + +## Contracts & Conditions + +Planetmint has been developed with simple logical gateways in mind. The logic got introduced by [cryptoconditions](https://https://docs.planetmint.io/projects/cryptoconditions). The cryptocondition documentation contains all details about how conditoins are defined and how they can be verified and fulfilled. + +The integration of such into the transaction schema of Planetmint is shown below. \ No newline at end of file diff --git a/docs/root/source/conf.py b/docs/root/source/conf.py index 3c5f8c0..8dc1e0e 100644 --- a/docs/root/source/conf.py +++ b/docs/root/source/conf.py @@ -30,14 +30,14 @@ from os import rename, remove # get version _version = {} -with open('../../../planetmint/version.py') as fp: +with open("../../../planetmint/version.py") as fp: exec(fp.read(), _version) currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) parentdir = os.path.dirname(currentdir) -sys.path.insert(0,parentdir) -#sys.path.insert(0, "/home/myname/pythonfiles") +sys.path.insert(0, parentdir) +# sys.path.insert(0, "/home/myname/pythonfiles") # -- General configuration ------------------------------------------------ @@ -48,84 +48,95 @@ sys.path.insert(0,parentdir) # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -project = 'Planetmint' +project = "Planetmint" import sphinx_rtd_theme extensions = [ - 'myst_parser', - 'sphinx.ext.autosectionlabel', - 'sphinx.ext.autodoc', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.viewcode', - 'sphinx.ext.todo', - 'sphinx.ext.napoleon', - 'sphinxcontrib.httpdomain', - 'aafigure.sphinxext', + "myst_parser", + "sphinx.ext.autosectionlabel", + "sphinx.ext.autodoc", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.viewcode", + "sphinx.ext.todo", + "sphinx.ext.napoleon", + "sphinxcontrib.httpdomain", + "aafigure.sphinxext", #'sphinx_toolbox.collapse', # Below are actually build steps made to look like sphinx extensions. # It was the easiest way to get it running with ReadTheDocs. - 'generate_http_server_api_documentation', + "generate_http_server_api_documentation", ] try: - remove('contributing/cross-project-policies/code-of-conduct.md') - remove('contributing/cross-project-policies/release-process.md') - remove('contributing/cross-project-policies/python-style-guide.md') + remove("contributing/cross-project-policies/code-of-conduct.md") + remove("contributing/cross-project-policies/release-process.md") + remove("contributing/cross-project-policies/python-style-guide.md") except: - print('done') + print("done") + def get_old_new(url, old, new): filename = wget.download(url) rename(old, new) -get_old_new('https://raw.githubusercontent.com/planetmint/planetmint/master/CODE_OF_CONDUCT.md', - 'CODE_OF_CONDUCT.md', 'contributing/cross-project-policies/code-of-conduct.md') -get_old_new('https://raw.githubusercontent.com/planetmint/planetmint/master/RELEASE_PROCESS.md', - 'RELEASE_PROCESS.md', 'contributing/cross-project-policies/release-process.md') +get_old_new( + "https://raw.githubusercontent.com/planetmint/planetmint/master/CODE_OF_CONDUCT.md", + "CODE_OF_CONDUCT.md", + "contributing/cross-project-policies/code-of-conduct.md", +) -get_old_new('https://raw.githubusercontent.com/planetmint/planetmint/master/PYTHON_STYLE_GUIDE.md', - 'PYTHON_STYLE_GUIDE.md', 'contributing/cross-project-policies/python-style-guide.md') +get_old_new( + "https://raw.githubusercontent.com/planetmint/planetmint/master/RELEASE_PROCESS.md", + "RELEASE_PROCESS.md", + "contributing/cross-project-policies/release-process.md", +) -suppress_warnings = ['misc.highlighting_failure'] +get_old_new( + "https://raw.githubusercontent.com/planetmint/planetmint/master/PYTHON_STYLE_GUIDE.md", + "PYTHON_STYLE_GUIDE.md", + "contributing/cross-project-policies/python-style-guide.md", +) + +suppress_warnings = ["misc.highlighting_failure"] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # autodoc settings -autodoc_member_order = 'bysource' +autodoc_member_order = "bysource" autodoc_default_options = { - 'members': None, + "members": None, } # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] -source_suffix = ['.rst', '.md'] +source_suffix = [".rst", ".md"] # The encoding of source files. # # source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" autosectionlabel_prefix_document = True # General information about the project. now = datetime.datetime.now() -copyright = str(now.year) + ', Planetmint Contributors' -author = 'Planetmint Contributors' +copyright = str(now.year) + ", Planetmint Contributors" +author = "Planetmint Contributors" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = _version['__short_version__'] +version = _version["__short_version__"] # The full version, including alpha/beta/rc tags. -release = _version['__version__'] +release = _version["__version__"] # The full version, including alpha/beta/rc tags. # The language for content autogenerated by Sphinx. Refer to documentation @@ -133,7 +144,7 @@ release = _version['__version__'] # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = 'en' +language = "en" # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: @@ -169,7 +180,7 @@ exclude_patterns = [] # show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] @@ -186,7 +197,8 @@ todo_include_todos = False # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'press' +html_theme = "press" +# html_theme = 'sphinx_documatt_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -195,7 +207,7 @@ html_theme = 'press' # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [press.get_html_theme_path()] +# html_theme_path = [press.get_html_theme_path()] # The name for this set of Sphinx documents. # " v documentation" by default. @@ -209,7 +221,7 @@ html_theme = 'press' # The name of an image file (relative to this directory) to place at the top # of the sidebar. # -html_logo = '_static/PLANETMINT_COLOR_POS.png' +html_logo = "_static/planetmint-logo.png" # The name of an image file (relative to this directory) to use as a favicon of # the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 @@ -220,7 +232,7 @@ html_logo = '_static/PLANETMINT_COLOR_POS.png' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied @@ -300,34 +312,36 @@ html_static_path = ['_static'] # html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'Planetmintdoc' +htmlhelp_basename = "Planetmintdoc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', + # The paper size ('letterpaper' or 'a4paper'). + # + "papersize": "letterpaper", + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'Planetmint.tex', 'Planetmint Documentation', - 'Planetmint Contributors', 'manual'), + ( + master_doc, + "Planetmint.tex", + "Planetmint Documentation", + "Planetmint Contributors", + "manual", + ), ] # The name of an image file (relative to this directory) to place at the top of @@ -367,10 +381,7 @@ latex_documents = [ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'planetmint', 'Planetmint Documentation', - [author], 1) -] +man_pages = [(master_doc, "planetmint", "Planetmint Documentation", [author], 1)] # If true, show URL addresses after external links. # @@ -383,9 +394,15 @@ man_pages = [ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'Planetmint', 'Planetmint Documentation', - author, 'Planetmint', 'One line description of project.', - 'Miscellaneous'), + ( + master_doc, + "Planetmint", + "Planetmint Documentation", + author, + "Planetmint", + "One line description of project.", + "Miscellaneous", + ), ] # Documents to append as an appendix to all manuals. diff --git a/docs/root/source/connecting/http-samples/api-index-response.http b/docs/root/source/connecting/http-samples/api-index-response.http index 5f5b316..2b5b985 100644 --- a/docs/root/source/connecting/http-samples/api-index-response.http +++ b/docs/root/source/connecting/http-samples/api-index-response.http @@ -4,7 +4,7 @@ Content-Type: application/json { "assets": "/assets/", "blocks": "/blocks/", - "docs": "https://docs.planetmint.com/projects/server/en/v0.9.3/http-client-server-api.html", + "docs": "https://docs.planetmint.com/projects/server/en/v0.9.7/http-client-server-api.html", "metadata": "/metadata/", "outputs": "/outputs/", "streamedblocks": "ws://localhost:9985/api/v1/streams/valid_blocks", diff --git a/docs/root/source/connecting/http-samples/index-response.http b/docs/root/source/connecting/http-samples/index-response.http index 052741f..b375262 100644 --- a/docs/root/source/connecting/http-samples/index-response.http +++ b/docs/root/source/connecting/http-samples/index-response.http @@ -6,7 +6,7 @@ Content-Type: application/json "v1": { "assets": "/api/v1/assets/", "blocks": "/api/v1/blocks/", - "docs": "https://docs.planetmint.com/projects/server/en/v0.9.3/http-client-server-api.html", + "docs": "https://docs.planetmint.com/projects/server/en/v0.9.7/http-client-server-api.html", "metadata": "/api/v1/metadata/", "outputs": "/api/v1/outputs/", "streamedblocks": "ws://localhost:9985/api/v1/streams/valid_blocks", @@ -15,7 +15,7 @@ Content-Type: application/json "validators": "/api/v1/validators" } }, - "docs": "https://docs.planetmint.com/projects/server/en/v0.9.3/", + "docs": "https://docs.planetmint.com/projects/server/en/v0.9.7/", "software": "Planetmint", - "version": "0.9.3" + "version": "0.9.7" } diff --git a/docs/root/source/cryptoconditions.md b/docs/root/source/cryptoconditions.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/root/source/index.rst b/docs/root/source/index.rst index 87db6d7..8c2d0b6 100644 --- a/docs/root/source/index.rst +++ b/docs/root/source/index.rst @@ -27,3 +27,10 @@ At a high level, one can communicate with a Planetmint network (set of nodes) us terminology troubleshooting + +.. toctree:: + :maxdepth: 1 + :caption: Cryptoconditions & Smart Contracts + + Crypto Conditions & Smart Contracts + cryptoconditions diff --git a/docs/root/source/network-setup/index.rst b/docs/root/source/network-setup/index.rst index c6d65bf..1708f20 100644 --- a/docs/root/source/network-setup/index.rst +++ b/docs/root/source/network-setup/index.rst @@ -4,7 +4,7 @@ SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) Code is Apache-2.0 and docs are CC-BY-4.0 -Networks & Fedreations +Networks & Federations ###################### diff --git a/docs/root/source/network-setup/network-setup.md b/docs/root/source/network-setup/network-setup.md index 32b71b4..c4f1b36 100644 --- a/docs/root/source/network-setup/network-setup.md +++ b/docs/root/source/network-setup/network-setup.md @@ -199,7 +199,7 @@ If you want to start and manage the Planetmint and Tendermint processes yourself ## How Others Can Access Your Node -If you followed the above instructions, then your node should be publicly-accessible with Planetmint Root URL `https://hostname` or `http://hostname:9984`. That is, anyone can interact with your node using the [Planetmint HTTP API](../connecting/api/http-client-server-api) exposed at that address. The most common way to do that is to use one of the [Planetmint Drivers](../connecting/drivers). +If you followed the above instructions, then your node should be publicly-accessible with Planetmint Root URL `https://hostname` or `http://hostname:9984`. That is, anyone can interact with your node using the [Planetmint HTTP API](../connecting/http-client-server-api) exposed at that address. The most common way to do that is to use one of the [Planetmint Drivers](../connecting/drivers). [bdb:software]: https://github.com/planetmint/planetmint/ [bdb:pypi]: https://pypi.org/project/Planetmint/#history diff --git a/docs/root/source/network-setup/networks.md b/docs/root/source/network-setup/networks.md index f1fe729..6007306 100644 --- a/docs/root/source/network-setup/networks.md +++ b/docs/root/source/network-setup/networks.md @@ -25,7 +25,7 @@ We now describe how *we* set up the external (public-facing) DNS records for a P There were several goals: * Allow external users/clients to connect directly to any Planetmint node in the network (over the internet), if they want. -* Each Planetmint node operator should get an SSL certificate for their Planetmint node, so that their Planetmint node can serve the [Planetmint HTTP API](../connecting/api/http-client-server-api) via HTTPS. (The same certificate might also be used to serve the [WebSocket API](../connecting/api/websocket-event-stream-api).) +* Each Planetmint node operator should get an SSL certificate for their Planetmint node, so that their Planetmint node can serve the [Planetmint HTTP API](../connecting/http-client-server-api) via HTTPS. (The same certificate might also be used to serve the [WebSocket API](../connecting/websocket-event-stream-api).) * There should be no sharing of SSL certificates among Planetmint node operators. * Optional: Allow clients to connect to a "random" Planetmint node in the network at one particular domain (or subdomain). diff --git a/docs/root/source/node-setup/configuration.md b/docs/root/source/node-setup/configuration.md index b0be925..682e5c2 100644 --- a/docs/root/source/node-setup/configuration.md +++ b/docs/root/source/node-setup/configuration.md @@ -109,7 +109,7 @@ If (no environment variables were set and there's no local config file), or you ## server.* `server.bind`, `server.loglevel` and `server.workers` -are settings for the [Gunicorn HTTP server](http://gunicorn.org/), which is used to serve the [HTTP client-server API](../connecting/api/http-client-server-api). +are settings for the [Gunicorn HTTP server](http://gunicorn.org/), which is used to serve the [HTTP client-server API](../connecting/http-client-server-api). `server.bind` is where to bind the Gunicorn HTTP server socket. It's a string. It can be any valid value for [Gunicorn's bind setting](http://docs.gunicorn.org/en/stable/settings.html#bind). For example: @@ -166,7 +166,7 @@ export PLANETMINT_SERVER_WORKERS=5 These settings are for the [aiohttp server](https://aiohttp.readthedocs.io/en/stable/index.html), which is used to serve the -[WebSocket Event Stream API](../connecting/api/websocket-event-stream-api). +[WebSocket Event Stream API](../connecting/websocket-event-stream-api). `wsserver.scheme` should be either `"ws"` or `"wss"` (but setting it to `"wss"` does *not* enable SSL/TLS). `wsserver.host` is where to bind the aiohttp server socket and diff --git a/docs/root/source/node-setup/deploy-a-machine.md b/docs/root/source/node-setup/deploy-a-machine.md index dc84990..2b0c149 100644 --- a/docs/root/source/node-setup/deploy-a-machine.md +++ b/docs/root/source/node-setup/deploy-a-machine.md @@ -25,7 +25,7 @@ using private IP addresses, but we don't cover that here.) ## Operating System -**Use Ubuntu 18.04 or Ubuntu Server 18.04 as the operating system.** +**Use Ubuntu 18.04 Server or above versions as the operating system.** Similar instructions will work on other versions of Ubuntu, and other recent Debian-like Linux distros, diff --git a/docs/root/source/terminology.md b/docs/root/source/terminology.md index 6827de7..fb4a5d0 100644 --- a/docs/root/source/terminology.md +++ b/docs/root/source/terminology.md @@ -11,8 +11,6 @@ There is some specialized terminology associated with Planetmint. To get started ## Planetmint Node -**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. - **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 @@ -27,6 +25,10 @@ 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. +## Validators + +A validator node is a Planetmint node that is a validator as it is defined for Tendermint (see [Tendermint Validator](https://docs.tendermint.com/master/nodes/validators.html)). + ## Transactions Are described in detail in `Planetmint Transactions Spec `_ . diff --git a/setup.py b/setup.py index 9e16fcf..77fb10c 100644 --- a/setup.py +++ b/setup.py @@ -84,6 +84,7 @@ docs_require = [ "zipp==3.8.0", "nest-asyncio==1.5.5", "sphinx-press-theme==0.8.0", + "sphinx-documatt-theme", ] check_setuptools_features()