{ "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", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "py-bbclib\n====\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![CircleCI](https://circleci.com/gh/beyond-blockchain/py-bbclib.svg?style=shield)](https://circleci.com/gh/beyond-blockchain/py-bbclib)\n\n\nThe library that defines BBc-1 transaction data structure is decoupled from [the bbc1 repository](https://github.com/beyond-blockchain/bbc1).\n\nBBc-1 is a Python-based reference implementation of BBc-1, a trustable system of record keeping beyond blockchains. The transaction data structure definition is the most important part of BBc-1.\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\nFor the details, please read documents in [docs/ directory](https://github.com/beyond-blockchain/py-bbclib/tree/develop/docs) or [the bbc1 repository](https://github.com/beyond-blockchain/bbc1). Not only documents but slide decks (PDF) explain the design of the BBc-1 and its implementation.\n\nAPI doc is ready at [readthedocs.org](https://py-bbclib.readthedocs.io/en/latest/index.html).\n\n## libbbcsig becomes optional at v1.5.3\n\nBefore v1.5.2, [libbbcsig module](https://github.com/beyond-blockchain/libbbcsig) was required by py-bbclib. So, building libbbcsig at pip install took very long time, and sometimes it leads to cache problem. py-bbclib v1.5.3 newly includes [cryptograpy module](https://github.com/pyca/cryptography) for crypto-related procedures. KeyPairPy class in bbclib_keypair.py includes the new feature and KeyPairFast class in bbclib_keypair_fast.py is the same script as bbclib_keypair.py in the older version. bbclib_keypair.py automatically checks whether libbbcsig is installed or not, and if not installed, bbclib_keypair.py fallbacks to use cryptography module based class.\n\nJust run,\n\n```bash\n pip install py-bbclib\n```\n\nYou will find that the module is installed more quickly than before.\n\nThe drawback of using fallback mode ([cryptograpy module](https://github.com/pyca/cryptography)) is slower transaction speed. Concretely, sign/verify speed is about half as fast as that of libbbcsig based mode.\n\nThe sign/verify performance comparison on MacBookPro 2016 (2.7 GHz Quad core Intel Core i7 with 16GB RAM) is shown below.\n\n| Mode | time to complete 20,000 times sign and verify |\n| ---------------------- | --------------------------------------------- |\n| use libbbcsig | about 8 seconds |\n| use cryptograpy module | about 15 seconds |\n| bbclib-go | about 4 seconds |\n\n*condition: The test code creates a BBcTransaction object with 2 signatures and verify this transaction object. This unit os sign/verify process is iterated 10,000 times.*\n\n\n\n## Namespace is changed at v1.4.1 \n\nBefore v1.4.1, the namesapce of py-bbclib module was \"bbc1\". However, This conflicts with that of bbc1 module.\nTherefore, the namespace of py-bbclib has been changed to \"bbclib\" since v1.4.1.\nBe careful when using py-bbclib module solely.\n\n\n## Environment\n\n* Python\n - Python 3.5.0 or later\n - virtualenv is recommended\n - ```python -mvenv venv```\n\n* tools for macOS by Homebrew\n ```\n xcode-select --install\n brew install libtool automake python3 openssl\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## Install\n\n```bash\n python -mvenv venv\n source venv/bin/activate\n pip install py-bbclib\n```\n\n### install libbbcsig (optional)\nAn external library, [libbbcsig](https://github.com/beyond-blockchain/libbbcsig) makes sign/verify of transaction data faster. After pip install, two utilities are installed in your venv/bin. \n\n\"install_libbbcsig\" command downloads the libbbcsig repository, builds libbbcsig and installs the dynamic link library in your venv. Just run as follows:\n\n```bash\n install_libbbcsig\n```\n\ninstall_libbbcsig command builds the library in /tmp/tmp.libbbcsig.xxxxx directory (xxxxx part is the process number). If you want to reuse the module, you can use \"copy_libbbcsig\" command to copy library from the repository directory that includes the built library as follows:\n\n```\n copy_libbbcsig /tmp/tmp.libbbcsig.xxxxx\n```\n\n\n\n", "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/py-bbclib", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "py-bbclib", "package_url": "https://pypi.org/project/py-bbclib/", "platform": "", "project_url": "https://pypi.org/project/py-bbclib/", "project_urls": { "Homepage": "https://github.com/beyond-blockchain/py-bbclib" }, "release_url": "https://pypi.org/project/py-bbclib/1.6.1/", "requires_dist": [ "pyOpenSSL (>=16.2.0)", "cryptography (>=2.1.4)", "msgpack-python (>=0.4.8)", "bson" ], "requires_python": "", "summary": "The library of BBc-1 transaction data structure definition", "version": "1.6.1", "yanked": false, "yanked_reason": null }, "last_serial": 10225400, "releases": { "1.3": [ { "comment_text": "", "digests": { "md5": "8fda0f11af8bf12a33b0f60aa3a33be0", "sha256": "58233a9c0278aa504837fa34b0a502354f5f2619edddc22e7122c171facba84e" }, "downloads": -1, "filename": "py-bbclib-1.3.tar.gz", "has_sig": false, "md5_digest": "8fda0f11af8bf12a33b0f60aa3a33be0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32807, "upload_time": "2019-07-09T14:33:42", "upload_time_iso_8601": "2019-07-09T14:33:42.598260Z", "url": "https://files.pythonhosted.org/packages/45/e7/d5365ffaceae9b7b7a9c0522a8ff87de1556d1dd29e7012cb1f3e4392eb4/py-bbclib-1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "7958b4aa69114c656ed42e9c192cdf92", "sha256": "79dfe823da78bde666e3cac261b2a113832fa7384f483dd8b0fc2e7e6ee1d4a7" }, "downloads": -1, "filename": "py-bbclib-1.4.1.tar.gz", "has_sig": false, "md5_digest": "7958b4aa69114c656ed42e9c192cdf92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35406, "upload_time": "2019-07-29T00:42:50", "upload_time_iso_8601": "2019-07-29T00:42:50.701895Z", "url": "https://files.pythonhosted.org/packages/d6/b8/5037c24f2285b806a7ca970766767d53f31202e22a4507b71ff70631c589/py-bbclib-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "b978c2c5b42aa70d4a908c73bab46126", "sha256": "e99cad4e4461fbe5cec5cf28357fceb11bcdfe2bc09fa3026264941b9ce7afc1" }, "downloads": -1, "filename": "py-bbclib-1.4.2.tar.gz", "has_sig": false, "md5_digest": "b978c2c5b42aa70d4a908c73bab46126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35481, "upload_time": "2019-07-31T04:00:26", "upload_time_iso_8601": "2019-07-31T04:00:26.280460Z", "url": "https://files.pythonhosted.org/packages/70/bb/242e7a70447b4d0384c1c84c7c5690567b55d49c1aa60dc40cc7380da794/py-bbclib-1.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "1e35319e8df6fe8e21e3867aff52c1de", "sha256": "c2836b5066e75a88c063dcbddbf82b53fee35dd1c3c6d4372e2d005bf44d73b9" }, "downloads": -1, "filename": "py-bbclib-1.4.3.tar.gz", "has_sig": false, "md5_digest": "1e35319e8df6fe8e21e3867aff52c1de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35685, "upload_time": "2019-08-02T23:56:16", "upload_time_iso_8601": "2019-08-02T23:56:16.050739Z", "url": "https://files.pythonhosted.org/packages/ab/ca/4e9865eb5855b01692094424fd30fe702eca1de797cebd020475072cdfa5/py-bbclib-1.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "57388b322f7defe8f6fb16a80581c418", "sha256": "d46c3ca19b1e3ba5caa014876f5d40c2b39408415b7b5ad0e083914a9091b8d3" }, "downloads": -1, "filename": "py-bbclib-1.4.4.tar.gz", "has_sig": false, "md5_digest": "57388b322f7defe8f6fb16a80581c418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35713, "upload_time": "2019-08-04T23:53:55", "upload_time_iso_8601": "2019-08-04T23:53:55.309084Z", "url": "https://files.pythonhosted.org/packages/c5/6c/1c7c8d8c42b9123d353b208b56dbc46269e6f1721b420b00d94f07b5165e/py-bbclib-1.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5": [ { "comment_text": "", "digests": { "md5": "8a0b9d6546aeed39121678e28275fc4f", "sha256": "5e931f7c6ee4aea80741b5ca09185a09de0cd664bd6defa5614f178cd2b82a12" }, "downloads": -1, "filename": "py-bbclib-1.5.tar.gz", "has_sig": false, "md5_digest": "8a0b9d6546aeed39121678e28275fc4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38123, "upload_time": "2019-09-15T16:05:36", "upload_time_iso_8601": "2019-09-15T16:05:36.551905Z", "url": "https://files.pythonhosted.org/packages/f2/1f/e4ad60ac4465f9d10b5682874931d0fe42478ef700439ac022f348b45889/py-bbclib-1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "2ff52f4ee62c04ec6ec091fe22c48c73", "sha256": "e7af30dbb141c8af2719872df2291ad1d09beacb00b9a17735f923d08ab7f16b" }, "downloads": -1, "filename": "py-bbclib-1.5.1.tar.gz", "has_sig": false, "md5_digest": "2ff52f4ee62c04ec6ec091fe22c48c73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42532, "upload_time": "2019-09-29T07:28:09", "upload_time_iso_8601": "2019-09-29T07:28:09.420775Z", "url": "https://files.pythonhosted.org/packages/3f/69/448457188621c41b88205fbf967df4539ae052742cdf76eb0f6b6cc48ac0/py-bbclib-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "b240209785da4e6c7debe3ff79d90065", "sha256": "109d6a1c806febcbab425197a9eff61976f71f54efc5b665fd6e244ed0ffc9d5" }, "downloads": -1, "filename": "py-bbclib-1.5.2.tar.gz", "has_sig": false, "md5_digest": "b240209785da4e6c7debe3ff79d90065", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38164, "upload_time": "2019-09-30T05:46:45", "upload_time_iso_8601": "2019-09-30T05:46:45.150077Z", "url": "https://files.pythonhosted.org/packages/d3/2a/bf6baef4f9200ad9cabed8b2a647c7971f121589f2e8367343df585980bb/py-bbclib-1.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "514be09999bb988a372914eee0de4527", "sha256": "aded08dbea5ca172966eb6781abaa6204e80a2f727ec85a4bdc5d51f020a9cb6" }, "downloads": -1, "filename": "py_bbclib-1.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "514be09999bb988a372914eee0de4527", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50689, "upload_time": "2019-10-26T17:56:33", "upload_time_iso_8601": "2019-10-26T17:56:33.379360Z", "url": "https://files.pythonhosted.org/packages/f1/06/21a286357d2cad92965ebda574e22a6cf23a86ec159af50386eec5a50666/py_bbclib-1.5.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1a0bf0867ea0378745667291fc8b0124", "sha256": "06765a5839f60a832f6a445c39eec510290592368388374775c8ed74656e8ee7" }, "downloads": -1, "filename": "py-bbclib-1.5.3.tar.gz", "has_sig": false, "md5_digest": "1a0bf0867ea0378745667291fc8b0124", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38079, "upload_time": "2019-10-26T17:56:34", "upload_time_iso_8601": "2019-10-26T17:56:34.552591Z", "url": "https://files.pythonhosted.org/packages/a4/9b/a9f16307a1918889164d40d8f81f2a5e222d3793c7ec17bdfaeea480a428/py-bbclib-1.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.5": [ { "comment_text": "", "digests": { "md5": "23c74088e6229b3fd1a91f1f079a98ff", "sha256": "89c461330783a8e945f7ae81caede080d63876fcf89901395499908105ebbae7" }, "downloads": -1, "filename": "py_bbclib-1.5.5-py3-none-any.whl", "has_sig": false, "md5_digest": "23c74088e6229b3fd1a91f1f079a98ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51214, "upload_time": "2019-10-28T14:30:08", "upload_time_iso_8601": "2019-10-28T14:30:08.643750Z", "url": "https://files.pythonhosted.org/packages/f6/6e/df39eac10f9d169accc1c919af44452fa2730d468ab0c2d7fb4edc9da49f/py_bbclib-1.5.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "be886f83a5295f5aa09f7e9bb43d4e7e", "sha256": "bd7aee1614b29a44f6343c7627eda07a5d6dcbf7ca9ec80c76673553d8b18560" }, "downloads": -1, "filename": "py-bbclib-1.5.5.tar.gz", "has_sig": false, "md5_digest": "be886f83a5295f5aa09f7e9bb43d4e7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40055, "upload_time": "2019-10-28T14:30:09", "upload_time_iso_8601": "2019-10-28T14:30:09.767716Z", "url": "https://files.pythonhosted.org/packages/d2/5a/70ad40fe937875272997baf674c4dcf2437d838459aa45def37e5488736e/py-bbclib-1.5.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.6": [ { "comment_text": "", "digests": { "md5": "d0b6bdd964412a58ad2817483d8744dd", "sha256": "403186aed7850bbd923f7f6a5ab549f16401efcdc5b13c0d0a999bade847dc3e" }, "downloads": -1, "filename": "py_bbclib-1.5.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d0b6bdd964412a58ad2817483d8744dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51269, "upload_time": "2019-10-30T06:13:07", "upload_time_iso_8601": "2019-10-30T06:13:07.953609Z", "url": "https://files.pythonhosted.org/packages/f1/6d/4a7bc3d486cd2dece7eff205aeef7c887d59cf194e7077b441f9e56a77d5/py_bbclib-1.5.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f3c7c2253fd938b823a0ab71e39f271c", "sha256": "04fcfda55bfc17f18e518784bbbe50a585daeb57cb99e17abff33d099992234c" }, "downloads": -1, "filename": "py-bbclib-1.5.6.tar.gz", "has_sig": false, "md5_digest": "f3c7c2253fd938b823a0ab71e39f271c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40175, "upload_time": "2019-10-30T06:13:09", "upload_time_iso_8601": "2019-10-30T06:13:09.518779Z", "url": "https://files.pythonhosted.org/packages/c1/84/eb9631111af6879cd0973c7a03a9e93581457265d98bf10be2e8aff0fbd6/py-bbclib-1.5.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6": [ { "comment_text": "", "digests": { "md5": "40c5e5e332ef36073f974830b263c500", "sha256": "44f853fab65f5cbe8f2ba1bdd39d6659f0c32751ded6d4a6468a215ae9f0666c" }, "downloads": -1, "filename": "py_bbclib-1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "40c5e5e332ef36073f974830b263c500", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53943, "upload_time": "2019-11-14T08:55:21", "upload_time_iso_8601": "2019-11-14T08:55:21.771108Z", "url": "https://files.pythonhosted.org/packages/6f/42/ad79d5342a1f0387da9f19fdd1e37ee3337bd30adff6f3636c2026e1eab4/py_bbclib-1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3230823058eb079470e402abfca5015f", "sha256": "3c8f9881a32675cce11097b9ebe85f9a911f6ab65ccd6ba55a0c5413b8623406" }, "downloads": -1, "filename": "py-bbclib-1.6.tar.gz", "has_sig": false, "md5_digest": "3230823058eb079470e402abfca5015f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42161, "upload_time": "2019-11-14T08:55:23", "upload_time_iso_8601": "2019-11-14T08:55:23.263369Z", "url": "https://files.pythonhosted.org/packages/f2/b8/0de2501e39bd2d76978d0847cf2e9fe447e427517edf60af6e7c3290111c/py-bbclib-1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "57cbd73074982cbf824252fca7fd1851", "sha256": "9c9bb6dd171a9864732c542750c8c7d1f4800d4e86f943bc640c3e9276b6267d" }, "downloads": -1, "filename": "py_bbclib-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "57cbd73074982cbf824252fca7fd1851", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53992, "upload_time": "2021-05-01T04:15:11", "upload_time_iso_8601": "2021-05-01T04:15:11.722957Z", "url": "https://files.pythonhosted.org/packages/8c/9d/166594e093df188e2307fd8a09db35c9642bbe463d60e1c223e45aaf19a5/py_bbclib-1.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0fb38bb9fc6fef5dc0d1c3f74aeda942", "sha256": "a3a9d462b3c156013a4a1e6bd3ec8e47e39b83e8efbe3af2e60524741021df7f" }, "downloads": -1, "filename": "py-bbclib-1.6.1.tar.gz", "has_sig": false, "md5_digest": "0fb38bb9fc6fef5dc0d1c3f74aeda942", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43495, "upload_time": "2021-05-01T04:15:12", "upload_time_iso_8601": "2021-05-01T04:15:12.572793Z", "url": "https://files.pythonhosted.org/packages/88/d1/ab0205ad6e722bb4cb382d27f93489246212ad71cd9300a812fb99271c5c/py-bbclib-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "57cbd73074982cbf824252fca7fd1851", "sha256": "9c9bb6dd171a9864732c542750c8c7d1f4800d4e86f943bc640c3e9276b6267d" }, "downloads": -1, "filename": "py_bbclib-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "57cbd73074982cbf824252fca7fd1851", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53992, "upload_time": "2021-05-01T04:15:11", "upload_time_iso_8601": "2021-05-01T04:15:11.722957Z", "url": "https://files.pythonhosted.org/packages/8c/9d/166594e093df188e2307fd8a09db35c9642bbe463d60e1c223e45aaf19a5/py_bbclib-1.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0fb38bb9fc6fef5dc0d1c3f74aeda942", "sha256": "a3a9d462b3c156013a4a1e6bd3ec8e47e39b83e8efbe3af2e60524741021df7f" }, "downloads": -1, "filename": "py-bbclib-1.6.1.tar.gz", "has_sig": false, "md5_digest": "0fb38bb9fc6fef5dc0d1c3f74aeda942", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43495, "upload_time": "2021-05-01T04:15:12", "upload_time_iso_8601": "2021-05-01T04:15:12.572793Z", "url": "https://files.pythonhosted.org/packages/88/d1/ab0205ad6e722bb4cb382d27f93489246212ad71cd9300a812fb99271c5c/py-bbclib-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }