{ "info": { "author": "Shawn Wilkinson", "author_email": "shawn+storjnode@storj.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "#########\nstorjnode\n#########\n\n|BuildLink|_ |CoverageLink|_ |BuildLink2|_ |CoverageLink2|_ |LicenseLink|_\n\n.. |BuildLink| image:: https://img.shields.io/travis/Storj/storjnode/master.svg?label=Build-Master\n.. _BuildLink: https://travis-ci.org/Storj/storjnode\n\n.. |CoverageLink| image:: https://img.shields.io/coveralls/Storj/storjnode/master.svg?label=Coverage-Master\n.. _CoverageLink: https://coveralls.io/r/Storj/storjnode\n\n.. |BuildLink2| image:: https://img.shields.io/travis/Storj/storjnode/develop.svg?label=Build-Develop\n.. _BuildLink2: https://travis-ci.org/Storj/storjnode\n\n.. |CoverageLink2| image:: https://img.shields.io/coveralls/Storj/storjnode/develop.svg?label=Coverage-Develop\n.. _CoverageLink2: https://coveralls.io/r/Storj/storjnode\n\n.. |LicenseLink| image:: https://img.shields.io/badge/license-MIT-blue.svg\n.. _LicenseLink: https://raw.githubusercontent.com/Storj/storjnode\n\n\nLow level storj protocol reference implementation.\n\n\nSetup\n#####\n\nWindows\n=======\n\nDownload `latest windows release from github `_.\n\nExtract the zip file to the folder where you wish to have it installed.\n\n::\n\n $ storjnode.exe --help\n\n\nLinux (Ubuntu/Mint/Debian)\n==========================\n\nInstall client\n\n::\n\n $ sudo pip install storjnode\n $ storjnode --help\n\n\nUpdate client\n\n::\n\n $ sudo pip install storjnode --upgrade\n $ storjnode --help\n\n\nOSX\n===\n\nInstall client\n\n::\n\n $ brew install python\n $ rehash\n $ pip install storjnode\n $ storjnode --help\n\nUpdate client\n\n::\n\n $ pip install storjnode --upgrade\n $ storjnode --help\n\n\nPython usage examples\n#####################\n\nNormal usage\n============\n\nStarting and using a node in python.\n\n.. code:: python\n\n #!/usr/bin/env python\n # from examples/usage.py\n import time\n import signal\n import storjnode\n from crochet import setup, TimeoutError\n\n # start twisted via crochet and remove twisted handler\n setup()\n signal.signal(signal.SIGINT, signal.default_int_handler)\n\n # start node (use bitcoin wif or hwif as node key)\n node_key = \"KzygUeD8qXaKBFdJWMk9c6AVib89keoZFBNdFBsj73kYZfAc4n1j\"\n node = storjnode.network.Node(node_key)\n\n try:\n print(\"Giving nodes some time to find peers.\")\n time.sleep(storjnode.network.WALK_TIMEOUT)\n\n # The blocking node interface is very simple and behaves like a dict.\n node[\"examplekey\"] = \"examplevalue\" # put key value pair into DHT\n retrieved = node[\"examplekey\"] # retrieve value by key from DHT\n print(\"{key} => {value}\".format(key=\"examplekey\", value=retrieved))\n\n except TimeoutError:\n print(\"Got timeout error\")\n\n except KeyboardInterrupt:\n pass\n\n finally:\n print(\"Stopping node\")\n node.stop()\n\n\nMultinode usage\n===============\n\nUsing more then one node in a python script.\n\nIf your are using more then one node in a single script, you must assign them\ndifferent ports.\n\nSee examples/network/multinode.py\n\n\nNode messaging\n==============\n\nRelay messages are sent to the node nearest the receiver in the routing table\nthat accepts the relay message. This continues until it reaches the destination\nor the nearest node to the receiver is reached.\n\nBecause messages are always relayed only to reachable nodes in the current\nrouting table, there is a fare chance nodes behind a NAT can be reached if\nit is connected to the network.\n\nSee examples/network/relay_message.py\n\nNetwork mapping\n===============\n\nYou can crawl the network to create a map of the network. Generating a graph\nof the network is also possable (though not reccomended for networks with\nmany nodes).\n\nSee examples/network/map_network.py", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://storj.io", "keywords": "storj,reference,protocol,DHT", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "storjnode", "package_url": "https://pypi.org/project/storjnode/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/storjnode/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://storj.io" }, "release_url": "https://pypi.org/project/storjnode/0.0.21/", "requires_dist": null, "requires_python": null, "summary": "Low level storj protocol reference implementation.", "version": "0.0.21" }, "last_serial": 1891723, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0e65f173bf300324b246578c5a8e9f2b", "sha256": "0133e8eb1994b98f35ac71576ba24a43a2b9ba49d4657916af95b543738fec4b" }, "downloads": -1, "filename": "storjnode-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e65f173bf300324b246578c5a8e9f2b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 3410, "upload_time": "2015-09-20T20:58:48", "url": "https://files.pythonhosted.org/packages/15/91/e5a47a58b7f8dad84ea5509b3e2b3acce76bd990c9177f21ffb576f24531/storjnode-0.0.1-py2.py3-none-any.whl" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "5dbb4beefed0e3d116a99fdb5468026a", "sha256": "38defdcec1205f7d54940feb80cb23c22118751d418038b1e0d4ddd8cf45245d" }, "downloads": -1, "filename": "storjnode-0.0.11-py2-none-any.whl", "has_sig": false, "md5_digest": "5dbb4beefed0e3d116a99fdb5468026a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 51041, "upload_time": "2015-11-18T16:32:33", "url": "https://files.pythonhosted.org/packages/18/c7/57bc8279eab1b75a4bb41a553ecae3b9bc188bf34642d20c3419daf03071/storjnode-0.0.11-py2-none-any.whl" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "4878485916f9413325e84e86fe3c6216", "sha256": "aee676f0a2aa43dd253c958c19249fd31c308c6318706ebeb1c7e8aa3b93f7ac" }, "downloads": -1, "filename": "storjnode-0.0.12-py2-none-any.whl", "has_sig": false, "md5_digest": "4878485916f9413325e84e86fe3c6216", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 51195, "upload_time": "2015-11-18T22:48:18", "url": "https://files.pythonhosted.org/packages/41/d6/fb8af278c1ece2fb3329d0201cc507d28b50c4d0b27dc680554ad8bbc3fc/storjnode-0.0.12-py2-none-any.whl" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "8dbbfd270a8f65dda4c3d1fd4982d4e6", "sha256": "e414d7425c100b82fd75323370181602f288cbaf519110345950cdc52c509d16" }, "downloads": -1, "filename": "storjnode-0.0.13-py2-none-any.whl", "has_sig": false, "md5_digest": "8dbbfd270a8f65dda4c3d1fd4982d4e6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 51170, "upload_time": "2015-11-18T23:28:51", "url": "https://files.pythonhosted.org/packages/3e/d6/974cfea241929076192852d2d1937d0fcfbae2ff74b0a818d0deecf1782d/storjnode-0.0.13-py2-none-any.whl" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "7ea339a36eab9f667fb3548a09530302", "sha256": "d9e6bec12ce07afef1f63fe4694eaa194f8718f7da2aabcc00ea8dc7c315b7e9" }, "downloads": -1, "filename": "storjnode-0.0.14-py2-none-any.whl", "has_sig": false, "md5_digest": "7ea339a36eab9f667fb3548a09530302", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 51193, "upload_time": "2015-11-18T23:52:43", "url": "https://files.pythonhosted.org/packages/a3/9e/09337efe2728c65c0344899b70c9b0053bf2665859a7534cc3bb72435248/storjnode-0.0.14-py2-none-any.whl" } ], "0.0.15": [], "0.0.16": [ { "comment_text": "", "digests": { "md5": "95e2552bd88a0e193109213cdb1b36ef", "sha256": "bdc2883091b1f6d0716b3595a1e6354d16e2cd202613ad0832a11ec04eb7f93f" }, "downloads": -1, "filename": "storjnode-0.0.16-py2-none-any.whl", "has_sig": false, "md5_digest": "95e2552bd88a0e193109213cdb1b36ef", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 48877, "upload_time": "2015-11-19T16:18:16", "url": "https://files.pythonhosted.org/packages/0f/bb/8a5bf55079d11789f0619671a2df7eea82a50bc6e1bbce6fc3f989401650/storjnode-0.0.16-py2-none-any.whl" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "e959991e107cf6cce0a68d716fb4af88", "sha256": "626d703d23343f8bcd0afc9c843658cb6f7e1fec153361aef28932aebcaa6739" }, "downloads": -1, "filename": "storjnode-0.0.17-py2-none-any.whl", "has_sig": false, "md5_digest": "e959991e107cf6cce0a68d716fb4af88", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 48931, "upload_time": "2015-11-19T19:51:41", "url": "https://files.pythonhosted.org/packages/0c/e5/2a52a680fa0762314de90f208b5377699049d027c03d65da7e338f02142f/storjnode-0.0.17-py2-none-any.whl" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "40a8321682db8f71a327a623bad43020", "sha256": "d465d60ad9a467514a4391e41a2d03f659aee92b6714f72de068204383b3b1dd" }, "downloads": -1, "filename": "storjnode-0.0.18-py2-none-any.whl", "has_sig": false, "md5_digest": "40a8321682db8f71a327a623bad43020", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 48904, "upload_time": "2015-11-20T17:27:14", "url": "https://files.pythonhosted.org/packages/79/19/fad8a2b907d651fdc916899eca2489cf2d8201ed017ff581144f616f14a5/storjnode-0.0.18-py2-none-any.whl" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "08dd483e69e474393e79ea562d722207", "sha256": "5d5f71f960b5d2f90e1bd7bf00a28d99dba8b8b2c2ace070168e446d5d81e7f7" }, "downloads": -1, "filename": "storjnode-0.0.19-py2-none-any.whl", "has_sig": false, "md5_digest": "08dd483e69e474393e79ea562d722207", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 82832, "upload_time": "2015-12-09T19:37:06", "url": "https://files.pythonhosted.org/packages/fd/e1/4bb702ab9dd6310047c988e4f2d9da284967a8f448ba6306d67a6d51c946/storjnode-0.0.19-py2-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "5e6f1d5e0db10463905e3657f8acee60", "sha256": "4b068d297d39cd56937241db772c3614ea35e97f26fba9d1a7f14b63c6b69063" }, "downloads": -1, "filename": "storjnode-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e6f1d5e0db10463905e3657f8acee60", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 3406, "upload_time": "2015-09-20T21:03:33", "url": "https://files.pythonhosted.org/packages/c1/74/85a690257c722d0cc6d46eefb73c6d4a1709616dde77d898a5144274c49d/storjnode-0.0.2-py2.py3-none-any.whl" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "f6ca9a82f0dce28ec7f8af3098096048", "sha256": "c2954ff6ec2278c352077661a8426e4a08203cbbfb9e82a1a3f195e7c5a59afc" }, "downloads": -1, "filename": "storjnode-0.0.20-py2-none-any.whl", "has_sig": false, "md5_digest": "f6ca9a82f0dce28ec7f8af3098096048", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 83784, "upload_time": "2015-12-11T18:46:10", "url": "https://files.pythonhosted.org/packages/8f/23/b56607f40c20d63cff809eafbe008622222ff4f5095050738e4dd513a7f8/storjnode-0.0.20-py2-none-any.whl" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "5699401ea5dde98d39f3ef7d914d3e10", "sha256": "ee8ac59b64f0e4edb06118d017af363c613cd3dacec3ac153917ca2a31590403" }, "downloads": -1, "filename": "storjnode-0.0.21-py2-none-any.whl", "has_sig": false, "md5_digest": "5699401ea5dde98d39f3ef7d914d3e10", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 93352, "upload_time": "2016-01-06T19:45:02", "url": "https://files.pythonhosted.org/packages/4e/cf/ec3fb80ba6ead5afaa892c58bada95ebc7a0cc40a668321acbdaca13135f/storjnode-0.0.21-py2-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "440c941230389f6a24589c49de4817ba", "sha256": "3251e1e1add48e28570fcfc6e51fb6eabe182fc537129f317dfd4deefa7ec0b8" }, "downloads": -1, "filename": "storjnode-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "440c941230389f6a24589c49de4817ba", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11996, "upload_time": "2015-10-19T17:08:58", "url": "https://files.pythonhosted.org/packages/3d/d5/4da6ed38e397b9b82b7f01ab30569e3b311a0f1e2b6c7e3b058cfaeacd72/storjnode-0.0.3-py2.py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "f8527314ab6593a51607d6fbc4be0723", "sha256": "6dcf059bef008acb466205aa2f7348e3c79aba4c8ba08877295b4ee927ae3a6a" }, "downloads": -1, "filename": "storjnode-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "f8527314ab6593a51607d6fbc4be0723", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11957, "upload_time": "2015-10-19T18:21:39", "url": "https://files.pythonhosted.org/packages/e9/db/85bc3f9ba5635df1391021706db1c3b9d2865fdec0e9a4d93db4ff91e068/storjnode-0.0.4-py2-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "82214021291657f2036f9895bf7c8bb2", "sha256": "40dab9f0cbf48a61fc9120ee31e2b010408e5c3c32d84497041815cf5ced69a4" }, "downloads": -1, "filename": "storjnode-0.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "82214021291657f2036f9895bf7c8bb2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 49727, "upload_time": "2015-10-24T16:56:55", "url": "https://files.pythonhosted.org/packages/6c/68/b74d77bfd57e9d8af492efe4b7177ccf609058442cde8b530d16b4673de9/storjnode-0.0.6-py2-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "8e75e320790aa1a5992ceacc4d6e65f5", "sha256": "f880f27f927c68ac9debb90d8cf5dcd2fb9b9a489020cd032ba51c09dd8a0c73" }, "downloads": -1, "filename": "storjnode-0.0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "8e75e320790aa1a5992ceacc4d6e65f5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 49757, "upload_time": "2015-10-24T18:43:52", "url": "https://files.pythonhosted.org/packages/91/11/f9d6cd95f42c1313ee9f7742abaeda915260c21dfc278b07d74dfc290873/storjnode-0.0.7-py2-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "dc9a7c51c9cd18f0a7587b16682eda11", "sha256": "20e5f85845a104cf3fc8a620ec6fbb040378463d4523f1c1109c12bb5b64aea8" }, "downloads": -1, "filename": "storjnode-0.0.8-py2-none-any.whl", "has_sig": false, "md5_digest": "dc9a7c51c9cd18f0a7587b16682eda11", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 68112, "upload_time": "2015-10-31T17:41:34", "url": "https://files.pythonhosted.org/packages/97/cc/688d3742ef75fca9b392da810b5777a7545b9e09704b7c0e9f0627325cc6/storjnode-0.0.8-py2-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "9d90de56781191347309d6f324626526", "sha256": "6395f144267323b632042f32e514a9e5866a41cef72f119e4586e5f5f46dbdeb" }, "downloads": -1, "filename": "storjnode-0.0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "9d90de56781191347309d6f324626526", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 49269, "upload_time": "2015-11-16T21:42:14", "url": "https://files.pythonhosted.org/packages/77/39/fec4f5589834b635760e26d2891ffa8aa3cc2aecc9365cddb4f3f0826feb/storjnode-0.0.9-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5699401ea5dde98d39f3ef7d914d3e10", "sha256": "ee8ac59b64f0e4edb06118d017af363c613cd3dacec3ac153917ca2a31590403" }, "downloads": -1, "filename": "storjnode-0.0.21-py2-none-any.whl", "has_sig": false, "md5_digest": "5699401ea5dde98d39f3ef7d914d3e10", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 93352, "upload_time": "2016-01-06T19:45:02", "url": "https://files.pythonhosted.org/packages/4e/cf/ec3fb80ba6ead5afaa892c58bada95ebc7a0cc40a668321acbdaca13135f/storjnode-0.0.21-py2-none-any.whl" } ] }