{ "info": { "author": "Storj Labs", "author_email": "info@storj.io", "bugtrack_url": null, "classifiers": [], "description": "Downstream Farmer\n=================\n\n|Build Status| |Coverage Status|\n\nWhat is this?\n-------------\n\n``downstream-farmer`` talks to\n`downstream-node `__. In order\nto use it, you'll need a node up and running. ``downstream-node``\nrequires MySQL and a working config, but *this app*,\n``downstream-farmer``, will require python-dev and libcrypto++-dev to\ninstall from source.\n\nYou can install and use ``downstream-farmer`` on all major operating systems:\n\n**Ubuntu** \n\n::\n\n $ sudo apt-get install python-dev libcrypto++-dev libgmp-dev git python-pip\n $ pip install --process-dependency-links downstream-farmer\n\nIt is recommended to run your `pip install` inside a Python virtual environment to prevent potential conflicts with your system Python and packages.\n\n**OSX**\n\n::\n\n $ brew tap storj/storj\n $ brew install downstream-farmer\n\nAfter adding the ``storj/storj`` tap, you can use ``brew info downstream-farmer`` at any time to see usage information.\n\n**Windows**\n\nUse the binaries available `here `_.\n\nTo connect to our test node, you must have a whitelisted address and\nprovide signed verification of ownership of that address.\n\nThere are a couple of ways to do this. If you have your private keys in\na local bitcoin wallet such as the mainline Bitcoin Client, Multibit,\nArmory, or Electrum, sign a message of your choice with your SJCX\naddress that has a crowdsale balance of at least 10,000 SJCX. Then make\nsure the message and signature are included in your ``identities.json``\nfile.\n\nFor example, on Counterwallet, click on Address Actions, and then Sign\nMessage. Type a message of your choice, and click Sign. Then copy and\npaste the message and signature into the ``identities.json`` file in the\n``data/`` directory, replacing the example identity. For example:\n\n.. code:: json\n\n {\n \"19qVgG8C6eXwKMMyvVegsi3xCsKyk3Z3jV\": {\n \"message\": \"test message\",\n \"signature\": \"HyzVUenXXo4pa+kgm1vS8PNJM83eIXFC5r0q86FGbqFcdla6rcw72/ciXiEPfjli3ENfwWuESHhv6K9esI0dl5I=\"\n }\n }\n\nEnsure that any whitespace in the message is included in the JSON string\nand that it is enclosed with double quotes. Then, you should be able to\nconnect to our test node by running (assuming your SJCX address is in\nthe crowdsale whitelist):\n\n::\n\n $ downstream\n\nThe usage of the program is:\n\n::\n\n\tusage: downstream [-h] [-V] [-n NUMBER] [-p HISTORY] [-s SIZE] [-a ADDRESS]\n\t\t\t\t\t [-t TOKEN] [-f] [-i IDENTITY] [-d DATA_DIRECTORY]\n\t\t\t\t\t [--ssl-no-verify] [--log-path LOG_PATH] [--quiet]\n\t\t\t\t\t [--print-log]\n\t\t\t\t\t [node_url]\n\n\tpositional arguments:\n\t node_url URL of the downstream node to connect to. The default\n\t\t\t\t\t\t\tnode is https://live.driveshare.org:8443\n\n\toptional arguments:\n\t -h, --help show this help message and exit\n\t -V, --version show program's version number and exit\n\t -n NUMBER, --number NUMBER\n\t\t\t\t\t\t\tNumber of challenges to perform. If unspecified,\n\t\t\t\t\t\t\tperform challenges until killed.\n\t -p HISTORY, --history HISTORY\n\t\t\t\t\t\t\tPath to save/load history from. The history file saves\n\t\t\t\t\t\t\tyour farming tokens for each node you connect to. The\n\t\t\t\t\t\t\tdefault path is data\\history.json.\n\t -s SIZE, --size SIZE Total size of contracts to obtain in bytes. Default is\n\t\t\t\t\t\t\t33554432 bytes\n\t -a ADDRESS, --address ADDRESS\n\t\t\t\t\t\t\tSJCX address for farming. You can specify this if you\n\t\t\t\t\t\t\thave multiple identities and would like to farm under\n\t\t\t\t\t\t\tone of them. Otherwise by default, an address from\n\t\t\t\t\t\t\tyour identity file (data\\identities.json) will be\n\t\t\t\t\t\t\tused.\n\t -t TOKEN, --token TOKEN\n\t\t\t\t\t\t\tFarming token to use. If you already have a farming\n\t\t\t\t\t\t\ttoken, you can reconnect to the node with it by\n\t\t\t\t\t\t\tspecifying it here. By default a new token will be\n\t\t\t\t\t\t\tobtained. Any tokens obtained will be saved in the\n\t\t\t\t\t\t\thistory JSON file.\n\t -f, --forcenew Force obtaining a new token. If the node has been\n\t\t\t\t\t\t\treset and your token has been deleted, it may be\n\t\t\t\t\t\t\tnecessary to force your farmer to obtain a new token.\n\t -i IDENTITY, --identity IDENTITY\n\t\t\t\t\t\t\tSpecify an identity file to provide a signature to\n\t\t\t\t\t\t\tprove ownership of your SJCX address. The default path\n\t\t\t\t\t\t\tis data\\identities.json. The file format should be a\n\t\t\t\t\t\t\tJSON dictionary like the following:\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t \"your sjcx address\": {\n\t\t\t\t\t\t\t\t \"message\": \"your message here\",\n\t\t\t\t\t\t\t\t \"signature\": \"base64 signature from bitcoin\\\n\t\t\t\t\t\t\t\t\t\t\t\t wallet or counterwallet\",\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tIf an identity is specified in this file, it will be\n\t\t\t\t\t\t\tused for connecting to any new nodes.\n\t -d DATA_DIRECTORY, --data-directory DATA_DIRECTORY\n\t\t\t\t\t\t\tData directory to place file chunks. By default\n\t\t\t\t\t\t\tdata\\chunks\n\t --ssl-no-verify Do not verify ssl certificates.\n\t --log-path LOG_PATH Path to the log file. Default is: farmer.log\n\t --quiet Do not show the status console.\n\t --print-log Print log to screen instead of status console.\n\nThis prototype performs three simple functions. It connects to the\nspecified node, it requests a chunk (which also gives it the first chunk\nchallenge and information to recreate the test file), and then it\nanswers the chunk challenge.\n\n**If this is at all confusing, we're doing it as a functional test in\nthe travis.yml file, so watch it in action on Travis-CI.**\n\n.. |Build Status| image:: https://travis-ci.org/Storj/downstream-farmer.svg?branch=master\n :target: https://travis-ci.org/Storj/downstream-farmer\n.. |Coverage Status| image:: https://img.shields.io/coveralls/Storj/downstream-farmer.svg\n :target: https://coveralls.io/r/Storj/downstream-farmer?branch=master", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/Storj/downstream-farmer/tarball/0.1.8", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Storj/downstream-farmer", "keywords": "storj,farmer,farming,driveshare", "license": "The MIT License (MIT)\n\nCopyright (c) 2014 Storj Labs\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.", "maintainer": null, "maintainer_email": null, "name": "downstream-farmer", "package_url": "https://pypi.org/project/downstream-farmer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/downstream-farmer/", "project_urls": { "Download": "https://github.com/Storj/downstream-farmer/tarball/0.1.8", "Homepage": "https://github.com/Storj/downstream-farmer" }, "release_url": "https://pypi.org/project/downstream-farmer/0.1.8/", "requires_dist": null, "requires_python": null, "summary": "Client software for a Storj farmer", "version": "0.1.8" }, "last_serial": 1563963, "releases": { "0.1.3.1": [ { "comment_text": "", "digests": { "md5": "a32e6aec585079fa8b29522dd5e02e53", "sha256": "f91161a0bb4efad9b0dd07c80f901ba91dbd7c4cf2b8e498a06221b1bedcb14e" }, "downloads": -1, "filename": "downstream-farmer-0.1.3.1.tar.gz", "has_sig": false, "md5_digest": "a32e6aec585079fa8b29522dd5e02e53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148788, "upload_time": "2014-12-16T02:37:11", "url": "https://files.pythonhosted.org/packages/9f/21/1ed0baac816eb76e3337a0770fa355cef5647967cbf67a0cd19fe0dd1a5e/downstream-farmer-0.1.3.1.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2fbfc3b21129efaa7adec39a5674fecc", "sha256": "2d2091d2661745c8f298e9602dc355ada6c23d388b7874e5a4b567328d97a08c" }, "downloads": -1, "filename": "downstream-farmer-0.1.4.tar.gz", "has_sig": false, "md5_digest": "2fbfc3b21129efaa7adec39a5674fecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148789, "upload_time": "2014-12-17T13:46:30", "url": "https://files.pythonhosted.org/packages/89/2e/f3ee5ca1ec7ba384e8d31c048da39e853fc00b24c2930a29b7a53e3e9a78/downstream-farmer-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "79cb8d621178c834b245a57ab67af537", "sha256": "6cbcc8136c7c5843af00d934590da1d0f2978b58691427387858d53dd0671812" }, "downloads": -1, "filename": "downstream-farmer-0.1.5.tar.gz", "has_sig": false, "md5_digest": "79cb8d621178c834b245a57ab67af537", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 152803, "upload_time": "2015-01-24T18:49:30", "url": "https://files.pythonhosted.org/packages/24/d0/cee73334369eae77ed0ffdc4d8e35043f831e8ef6e9fb81ef69ba97d6375/downstream-farmer-0.1.5.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c996d240be57923377a2088089056680", "sha256": "b74e48b2d202c78549f3bdeb7ed0b1f7753a82806ac28ae9c968943067684b88" }, "downloads": -1, "filename": "downstream-farmer-0.1.7.tar.gz", "has_sig": false, "md5_digest": "c996d240be57923377a2088089056680", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160894, "upload_time": "2015-02-11T01:39:43", "url": "https://files.pythonhosted.org/packages/47/b7/bfb1d9ebaa00d5c626e9da1f2236e3349064dc5fc6a1db99c034dfa4099a/downstream-farmer-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "577cbdf030ed51d48a36f36760f3a21a", "sha256": "25e8850ed1770d5daa1ae541dd4478bc723472795b59320f171845083f6971a7" }, "downloads": -1, "filename": "downstream-farmer-0.1.8.zip", "has_sig": false, "md5_digest": "577cbdf030ed51d48a36f36760f3a21a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173148, "upload_time": "2015-02-12T04:05:14", "url": "https://files.pythonhosted.org/packages/75/8e/d35162c52d48519387a77a73e414587014bddbac34588a696cbeb171ac62/downstream-farmer-0.1.8.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "577cbdf030ed51d48a36f36760f3a21a", "sha256": "25e8850ed1770d5daa1ae541dd4478bc723472795b59320f171845083f6971a7" }, "downloads": -1, "filename": "downstream-farmer-0.1.8.zip", "has_sig": false, "md5_digest": "577cbdf030ed51d48a36f36760f3a21a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 173148, "upload_time": "2015-02-12T04:05:14", "url": "https://files.pythonhosted.org/packages/75/8e/d35162c52d48519387a77a73e414587014bddbac34588a696cbeb171ac62/downstream-farmer-0.1.8.zip" } ] }