{ "info": { "author": "beyond-blockchain.org", "author_email": "bbc1-dev@beyond-blockchain.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development" ], "description": "Core system of BBc-1 (Beyond Blockchain One)\n===========================================\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Build Status](https://travis-ci.org/beyond-blockchain/bbc1.svg?branch=develop)](https://travis-ci.org/beyond-blockchain/bbc1)\n\nThis project is a Python-based reference implementation of BBc-1, a trustable system of record keeping beyond blockchains.\n\nThe design paper (white paper) and the analysis paper are available [here](https://beyond-blockchain.org/public/bbc1-design-paper.pdf) and [here](https://beyond-blockchain.org/public/bbc1-analysis.pdf). BBc-1 is inspired from blockchain technologies like Bitcoin, Ethereum, Hyperledger projects, and so on.\nBBc-1 is a simple but reliable distributed ledger system in contrast with huge and complicated existing blockchain platforms.\nThe heart of BBc-1 is the transaction data structure and the relationship among transactions, which forms a graph topology.\nA transaction should be signed by the players who are the stake holders of the deal. BBc-1 achieves data integrity and data transparency by the topology of transaction relationship and signatures on transactions. Simply put, BBc-1 does not have *blocks*, and therefore, requires neither mining nor native cryptocurrency.\nBBc-1 can be applied to both private/enterprise use and public use. BBc-1 has a concept of *domain* for determining a region of data management. Any networking implementation (like Kademlia for P2P topology management) can be applied for each domain.\nAlthough there are many TODOs in BBc-1, this reference implementation includes most of the concept of BBc-1 and would work in private/enterprise systems. When sophisticated P2P algorithms are ready, BBc-1 will be able to support public use cases.\n\nThe source codes in this repository is a platform of BBc-1 and bbc\\_core.py is the main process of a core node.\nThe APIs of BBc-1 is defined in bbc\\_app.py and bbclib.py. So application developers should import them in your apps.\n For building a BBc-1 system, bbc1 package needs to be installed in the hosts and you need to run bbc\\_core.py on\n each host. In order to configure the BBc-1 network, the utilities in utils/ directory are available. They are a kind\n of BBc-1 application, so that you can develop your own management tools.\n\n\nFor the details, please read documents in docs/ directory. Not only documents but slide decks (PDF) explain the design of the BBc-1 and its implementation.\n\n\n# Trouble shooting\n\nInstalling bbc1 through pip sometimes fails owing to pip cache trouble. It might occur in the case that you terminate the install process during libbbcsig building process.\nThis leads to a defect in the pip cache of libbbcsig module, and resulting in fail installing forever.\n\nTo solve the problem, you need to remove pip cache or pip install without using cache. How to solve it is explained below.\n\n### Solution 1\nRemoving pip cache directory is a fundamental solution to this problem. The cache directories in various OS platform are as follows:\n\n\n* Linux and Unix\n - ~/.cache/pip\n* macOS\n - ~/Library/Caches/pip\n* Windows\n - %LocalAppData%\\pip\\Cache\n\nAfter removing the cache directory, install py-bbclib module again.\n\n```bash\npython3 -mvenv venv\n. venv/bin/activate\npip install py-bbclib\n```\n\n### Solution 2\nDisabling cache and re-installing the module is another solution, which is easier way.\n```bash\npython3 -mvenv venv\n. venv/bin/activate\npip --no-cache-dir install -I py-bbclib \n```\n\n\n## Recent changes regarding DB meta table\n\nIn the update to v1.3, a meta table of DB is updated to support timestamp-based search. The main table for transaction data itself remains unchanged, so that just updating meta table is need for migration. \nMigration tool is provided by utils/db_migration_tool.py. How to migrate is described below.\n\n### Migration step 1\n\nInstall new module by pip command if you use pip bbc1 module. Then, stop the old bbc_core.py process and start new one.\nThe meta table of DBs are automatically upgraded when the new bbc_core.py boots up.\n\n### Migration step 2\n\nRun db_migration_tool.py by specifying target working directory. If using pip module, the tool can be invoked directly as follows: \n```\ndb_migration_tool.py -w 'working_dir' \n```\n\nYou will see records are upgrading by the tool.\nIn the case of high transaction rate, some records might remain unchanged. In that case, re-run the tool. \n\nNote that you have to perform step 1 and 2 for each working directory because the process reads config file in the working directory and upgrades the DBs specified in the config.\n\n\n## Documents\nSome documents are available in docs/.\n* Policy, design and analysis\n * [BBc-trust.pdf](docs/BBc-trust.pdf)\n * [BBc-trust_ja.pdf](docs/BBc-trust_ja.pdf)\n * [BBc-1_design_paper.pdf](docs/BBc-1_design_paper.pdf)\n * [BBc1_design_document_v1.0_ja.pdf](docs/BBc1_design_document_v1.0_ja.pdf)\n * [BBc1_system_design_guide_v1.0_ja.pdf](docs/BBc1_system_design_guide_v1.0_ja.pdf)\n * [BBc1_consensus_consideration_v1.0_ja.pdf](docs/BBc1_consensus_consideration_v1.0_ja.pdf)\n * [How_BBc1_works_v1.0.2_ja.pdf](docs/How_BBc1_works_v1.0.2_ja.pdf)\n* Usage\n * [How_to_use_BBc1_v1.0.2_ja.pdf](docs/How_to_use_BBc1_v1.0.2_ja.pdf)\n * [BBc1_core_tutorial_installation_ja.md](docs/BBc1_core_tutorial_installation_ja.md)\n * [how_to_use_in_nat_environment.md](docs/how_to_use_in_nat_environment.md)\n * [libbbcsig_dll_build_for_Windows_x64_ja.md](docs/libbbcsig_dll_build_for_Windows_x64_ja.md)\n* Programing\n * [BBc1_pybbclib_programming_guide_v1.4.1_ja.md](docs/BBc1_pybbclib_programming_guide_v1.4.1_ja.md)\n * [BBc1_programming_guide_v1.3_ja.md](docs/BBc1_programming_guide_v1.3_ja.md)\n * [BBc1_core_tutorial_file_proof_ja.md](docs/BBc1_core_tutorial_file_proof_ja.md)\n * [BBc1_data_format_ja.md](docs/BBc1_data_format_ja.md)\n* API reference (Coming soon. Currently, something wrong in building docs)\n * [https://bbc-1.readthedocs.io/en/latest/](https://bbc-1.readthedocs.io/en/latest/)\n * You can read API docs in your local host by the following command:\n ```shell\n cd docs/api/_build/html\n pipenv run python -m http.server\n ```\n\n\n# Environment\n\n* Python\n - Python 3.5.0 or later\n - virtualenv is recommended\n - ```python -mvenv venv```\n - In some environment, [pipenv](https://docs.pipenv.org) does not work well.\n - Some bugs seems to be in the installation scripts. So, please do not use pipenv now.\n\n* tools for macOS by Homebrew\n ```\n brew install libtool automake python3\n pip3 install virtualenv\n ```\n\n* tools for Linux (Ubuntu 16.04 LTS, 18.04 LTS)\n ```\n sudo apt-get update\n sudo apt-get install -y git tzdata openssh-server python3 python3-dev python3-pip python3-venv libffi-dev net-tools autoconf automake libtool libssl-dev make\n ```\n\n\n# Quick start\n\n## From source code in github\n1. Install development tools (libtool, automake)\n2. Install python and pip\n3. Clone this project\n4. Prepare OpenSSL-based library in the root directory\n ```\n sh prepare.sh\n ```\n5. Install dependencies by the following command (in the case of python 3.6)\n ```\n python -mvenv venv\n source venv/bin/activate\n pip install -r requirements.txt\n ```\n\n6. Start bbc_core.py on a terminal\n ```\n cd core\n python bbc_core.py\n ```\n7. Start a sample app in another terminal (should be initially at bbc1/ top directory)\n ```\n pipenv shell\n cd examples\n python file_proof.py arg1 arg2..\n ```\n\n\n## Use pip\n1. Install development tools (libtool, automake)\n2. Install python and pip\n3. Install BBc1 by pip\n ```\n python -mvenv venv\n source venv/bin/activate\n pip install bbc1\n ```\n\n## Use docker (See README.md in docker/)\n0. Install docker on your host\n1. Clone this project\n2. Build docker image\n If you want source codes in your container,\n ```\n cd docker\n ./docker-bbc1.sh gitbuild\n ```\n or, if you just want to use BBc-1,\n ```\n cd docker\n ./docker-bbc1.sh pipbuild\n ```\n3. Run a docker container\n ```\n ./docker-bbc1.sh start\n ```\n4. Log in to the container\n ```\n ./docker-bbc1.sh shell\n ```\n or\n ```\n ssh -p 10022 root@localhost\n ```\n The initial password is \"bbc1\".\n\n### working directory\nThe working directory of BBc-1 on the docker container is mounted on docker/data/.bbc1/. You will find a config file, ledger DB and file storage directory in the working directory.\n\n\n# Files/Directories\n* bbc1/core/\n - core functions of BBc-1\n* utils/\n - BBc-1 system configuration utilities\n* examples/\n - sample applications on BBc-1\n* docker/\n - docker environments\n* tests/\n - test codes for pytest\n* docs/\n - docs about BBc-1 and its reference implementation\n* somewhere/.bbc1/\n - default working directory name of bbc_core.py\n* requirements.txt\n - python modules to be required\n* setup.py\n* MANIFEST.in\n* prepare.py\n - for creatign python modules\n* prepare.sh\n - setup script", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/beyond-blockchain/bbc1", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "bbc1", "package_url": "https://pypi.org/project/bbc1/", "platform": "", "project_url": "https://pypi.org/project/bbc1/", "project_urls": { "Homepage": "https://github.com/beyond-blockchain/bbc1" }, "release_url": "https://pypi.org/project/bbc1/1.4/", "requires_dist": null, "requires_python": "", "summary": "A core system of Beyond Blockchain One", "version": "1.4" }, "last_serial": 5686574, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "a39e9fd82d9bee1d436edadd11a38c0a", "sha256": "8891ce0e706d2c98d61c533155325e8fa130e20c3c8e5afce8dfb069bfdfe524" }, "downloads": -1, "filename": "bbc1-0.10.0.tar.gz", "has_sig": false, "md5_digest": "a39e9fd82d9bee1d436edadd11a38c0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20069151, "upload_time": "2018-04-10T23:07:33", "url": "https://files.pythonhosted.org/packages/d0/61/a2ce846b849080dcca0d985ed3905dd0ba7a1188cd3198b2f63fae95a967/bbc1-0.10.0.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "895b01608115011644a89312f2b60c94", "sha256": "a000817664b65df25aac7f5f2f324a0e12444e0e74dcfa9c89e8b6ebf575f934" }, "downloads": -1, "filename": "bbc1-0.7.tar.gz", "has_sig": false, "md5_digest": "895b01608115011644a89312f2b60c94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3852412, "upload_time": "2017-10-31T05:21:51", "url": "https://files.pythonhosted.org/packages/2f/6f/6f6398ecba5e6bbef762d1c331ad7379e2c340299be78be4411aa077b60a/bbc1-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4079f7c85a5265ad30178fcc89bc637c", "sha256": "f01c5c34f85dcf358d344dda08b507e666eda1c2cd5edb75183b19454680f296" }, "downloads": -1, "filename": "bbc1-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4079f7c85a5265ad30178fcc89bc637c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3856675, "upload_time": "2017-11-02T05:25:14", "url": "https://files.pythonhosted.org/packages/a8/f1/da03ed677001d1fc87df598c1dd5904948ef28e04ad786bbc04162885c5f/bbc1-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "fb99e762d907b5d2b72c39b243866860", "sha256": "e1f501234f373426e40fa9bde22844f0c9ea2cacdcb21a362a02e941d9b9aa5c" }, "downloads": -1, "filename": "bbc1-0.7.2.tar.gz", "has_sig": false, "md5_digest": "fb99e762d907b5d2b72c39b243866860", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9770472, "upload_time": "2017-11-22T04:22:43", "url": "https://files.pythonhosted.org/packages/95/eb/c0909acf63e567c1c33ad957a98e2cf04c31709afc2ac2a992a9398e9562/bbc1-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "f0cbb34d5cfee52e8f045f4e55562951", "sha256": "b29c2532d3dcbc2c3bc43f3b37181cc766545805081b081d7b461c71ded49d13" }, "downloads": -1, "filename": "bbc1-0.7.3.tar.gz", "has_sig": false, "md5_digest": "f0cbb34d5cfee52e8f045f4e55562951", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9901096, "upload_time": "2017-12-10T05:15:38", "url": "https://files.pythonhosted.org/packages/91/2e/708681a7b3b4573978b047cffa3dd8d7175d423d70a96ae8a0365099b8e6/bbc1-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "42e7e88b0f281f44ef59dd9d2a8834db", "sha256": "32bc13d873798eef52f3647375961506fd9bd735d3d24a2d665c25439b035386" }, "downloads": -1, "filename": "bbc1-0.7.4.tar.gz", "has_sig": false, "md5_digest": "42e7e88b0f281f44ef59dd9d2a8834db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9900383, "upload_time": "2017-12-18T05:23:20", "url": "https://files.pythonhosted.org/packages/27/12/3c5deea68c913c2cacc6e2415ccfb2fd5fbe7a8053ac2369bdb18683696a/bbc1-0.7.4.tar.gz" } ], "0.8.0.1a0": [ { "comment_text": "", "digests": { "md5": "d4f3f1ca1e2c6c3d928668d7ceabe2ae", "sha256": "6e915499cf57080db64f44e0db6cb66ceeb1a9156e03c03b53e8c383f58407ac" }, "downloads": -1, "filename": "bbc1-0.8.0.1a0.tar.gz", "has_sig": false, "md5_digest": "d4f3f1ca1e2c6c3d928668d7ceabe2ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9908371, "upload_time": "2018-01-27T12:14:45", "url": "https://files.pythonhosted.org/packages/45/58/60edba9b778eb451f1cab324024d565cab81a9d3a8a6f0b1b5ff314af58e/bbc1-0.8.0.1a0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "e78897bb2c54a7beba124ebe8396f36a", "sha256": "26c57f5c7f96300d68a4c70a336460832fcd02e859eb45ddfd1d3dd1dbc82700" }, "downloads": -1, "filename": "bbc1-0.8.1.tar.gz", "has_sig": false, "md5_digest": "e78897bb2c54a7beba124ebe8396f36a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18075654, "upload_time": "2018-02-12T03:02:04", "url": "https://files.pythonhosted.org/packages/73/42/ff8942355221378593a16a054682241c9f2198e43be05d75b7906daf6467/bbc1-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "bd2f683a77b1b9c7be452886bdeba1f1", "sha256": "d952a144d398a7d36a185a96f0d6300fc4f6eddfdce115c38240baf19c48340e" }, "downloads": -1, "filename": "bbc1-0.8.2.tar.gz", "has_sig": false, "md5_digest": "bd2f683a77b1b9c7be452886bdeba1f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19334096, "upload_time": "2018-02-25T07:14:16", "url": "https://files.pythonhosted.org/packages/ca/5e/a90cdf03b5031daa9c44fa06e8ad17bce7d45cc80afe524ab09071f49ee7/bbc1-0.8.2.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "7d4a74b38f8aa2ae4ab3d58dea565937", "sha256": "f543b69a2d75d5aff2cdcfa05ff89a776b12c94e98612646dcabe478c5d153d5" }, "downloads": -1, "filename": "bbc1-0.9.tar.gz", "has_sig": false, "md5_digest": "7d4a74b38f8aa2ae4ab3d58dea565937", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10490881, "upload_time": "2018-02-28T10:48:14", "url": "https://files.pythonhosted.org/packages/97/47/378c12a21103ec960573e4cdd0a47e5c91488cbb64af8f2b8a8c552cc412/bbc1-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "d102073b021912aaaf9c762389eeffd7", "sha256": "875af2744806569c36905ae1444d1276b7c49841815f2ffd8fc9d362af28eab3" }, "downloads": -1, "filename": "bbc1-0.9.1.tar.gz", "has_sig": false, "md5_digest": "d102073b021912aaaf9c762389eeffd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20041147, "upload_time": "2018-04-07T11:54:36", "url": "https://files.pythonhosted.org/packages/3e/06/844e718230a08bfd2d7808962780fe4fc2b1e166e1c54112725132ff502e/bbc1-0.9.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "0f796833bcda865b34d1db6804fdb138", "sha256": "98d819bb0cfa0f4cf094223a60cc3e8051f69d06d6aaa6ed069b92af1386f00c" }, "downloads": -1, "filename": "bbc1-1.0.tar.gz", "has_sig": false, "md5_digest": "0f796833bcda865b34d1db6804fdb138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19536511, "upload_time": "2018-05-22T06:37:38", "url": "https://files.pythonhosted.org/packages/5b/bb/19e4d224f066ad43e64cbf5d2f3973c3e03b6f3af82290f79b68f3a1b315/bbc1-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "688bd3d3f9428284ea92da96bf14c12a", "sha256": "9b3acc696e382bc171d197b497edd7ef719c5accebb9a8851bf8a0290cc0ad96" }, "downloads": -1, "filename": "bbc1-1.0.1.tar.gz", "has_sig": false, "md5_digest": "688bd3d3f9428284ea92da96bf14c12a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19513787, "upload_time": "2018-06-10T18:32:17", "url": "https://files.pythonhosted.org/packages/8e/c4/49ac1c56b8919ecd311bda94bea03c854f8214775a8bafac26bf6badc696/bbc1-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "52f29b288cee5f2eb3d844e1c541f9b1", "sha256": "8881df1ef49c041d093bd37b9157dc7872ece10498a7b8ae107d1000039a4fd3" }, "downloads": -1, "filename": "bbc1-1.1.0.tar.gz", "has_sig": false, "md5_digest": "52f29b288cee5f2eb3d844e1c541f9b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9215410, "upload_time": "2018-10-22T09:20:51", "url": "https://files.pythonhosted.org/packages/50/13/e9e13d69746c66a48c9e7413097535e3b8bfd75b295007583dab92a95454/bbc1-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "63a03a811a4c2cbba70bcbb1813b2c83", "sha256": "ceebd557ee813bd185f51797d2bd0e4fcb8633827a29cadc262a6bd21a6f89a8" }, "downloads": -1, "filename": "bbc1-1.1.1.tar.gz", "has_sig": false, "md5_digest": "63a03a811a4c2cbba70bcbb1813b2c83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9215452, "upload_time": "2018-11-16T16:05:31", "url": "https://files.pythonhosted.org/packages/0d/92/0dc5cd23b4b5d85f5841c9e7c1a621b461e99c43e975dcfbd052dfad3928/bbc1-1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "179cff9f1b40911b229bda0ada469433", "sha256": "aa9e2c32e626cb96860dec96759fb414dc7581bbd18d9f3f44228caf546e6932" }, "downloads": -1, "filename": "bbc1-1.2.tar.gz", "has_sig": false, "md5_digest": "179cff9f1b40911b229bda0ada469433", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23066277, "upload_time": "2018-11-22T01:03:57", "url": "https://files.pythonhosted.org/packages/6c/c4/7ea62edd21c0b12bec39cb942d86147453136c3f743b6ef2cd5d3132aa95/bbc1-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "c84e3ff3b9e80cab8133b94a0e2d37b9", "sha256": "226bba9262bdc11589bb1dd39f54cbe370c13c3784bc7e3ff0da907812929283" }, "downloads": -1, "filename": "bbc1-1.3.tar.gz", "has_sig": false, "md5_digest": "c84e3ff3b9e80cab8133b94a0e2d37b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9730741, "upload_time": "2019-04-26T13:10:33", "url": "https://files.pythonhosted.org/packages/25/3b/1b1de3928e1b8939c80abc5256e178e9370642636efd3aad9c049ff40220/bbc1-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "c70c9a211dcb44a653645450f0e5f172", "sha256": "cf4509c9078781a0a320d86d44c54ae2a114bd2eb202de5c6b0991aed3aa61ed" }, "downloads": -1, "filename": "bbc1-1.4.tar.gz", "has_sig": false, "md5_digest": "c70c9a211dcb44a653645450f0e5f172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73297, "upload_time": "2019-08-01T02:45:30", "url": "https://files.pythonhosted.org/packages/33/07/2bdfc839462049a3b06f8912400a6cf45b14348c12faace8bb027e59c424/bbc1-1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c70c9a211dcb44a653645450f0e5f172", "sha256": "cf4509c9078781a0a320d86d44c54ae2a114bd2eb202de5c6b0991aed3aa61ed" }, "downloads": -1, "filename": "bbc1-1.4.tar.gz", "has_sig": false, "md5_digest": "c70c9a211dcb44a653645450f0e5f172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73297, "upload_time": "2019-08-01T02:45:30", "url": "https://files.pythonhosted.org/packages/33/07/2bdfc839462049a3b06f8912400a6cf45b14348c12faace8bb027e59c424/bbc1-1.4.tar.gz" } ] }