联邦服务器,用于获取、推送和审核不受信任节点上的数据。
dataserv的Python项目详细描述
这是什么?
联邦服务器,用于获取、推送和审核不受信任节点上的数据。主要使用 对于Test Group B以及联邦的容量测试 基于服务器的文件传输。
设置
如何在ubuntu 14.04(lts)的干净安装上安装和运行:
# install dependencies apt-get update apt-get upgrade apt-get install -y postgresql postgresql-contrib authbind apt-get install -y python-virtualenv screen git python3 libpq-dev python3-dev # clone project git clone https://github.com/Storj/dataserv cd dataserv # setup virtualenv and install required python packages virtualenv -p /usr/bin/python3 env source env/bin/activate pip install -r requirements.txt # init db and start server cd dataserv python app.py db upgrade python app.py runserver curl http://127.0.0.1:5000/api/online/json
API
注册
将农民登记入数据库。所有农民必须在节点登记 可以执行任何其他操作。
GET /api/register/<bitcoin address>/<(optional)payout address>
成功范例:
GET /api/register/12guBkWfVjiqBnu5yRdTseBB7wBM5WSWnm RESPONSE: Status Code: 200 Text: {"last_seen": 0, "btc_addr": "12guBkWfVjiqBnu5yRdTseBB7wBM5WSWnm, "height": 0, "payout_addr": "12guBkWfVjiqBnu5yRdTseBB7wBM5WSWnm"} GET /api/register/12guBkWfVjiqBnu5yRdTseBB7wBM5WSWnm/1BZR9GHs9a1bBfh6cwnDtvq6GEvNwVWxFa RESPONSE: Status Code: 200 Text: {"last_seen": 0, "btc_addr": "12guBkWfVjiqBnu5yRdTseBB7wBM5WSWnm", "height": 0, "payout_addr": "1BZR9GHs9a1bBfh6cwnDtvq6GEvNwVWxFa"}
失败示例:
GET /api/register/notvalidaddress RESPONSE: Status Code: 400 Text: Registration Failed: Invalid BTC Address. GET /api/register/12guBkWfVjiqBnu5yRdTseBB7wBM5WSWnm RESPONSE: Status Code: 409 Text: Registration failed: Address already is registered. GET /api/register/1BZR9GHs9a1bBfh6cwnDtvq6GEvNwVWxFa RESPONSE: Status Code: 401 Text: Registration failed: Invalid authentication headers.
乒乓球
农民必须保持一个基本的生存与节点。这样我们就知道农夫 已经下线,我们不应该再提出更多的挑战。
GET /api/ping/<bitcoin address>
成功范例:
GET /api/ping/191GVvAaTRxLmz3rW3nU5jAV1rF186VxQc RESPONSE: Status Code: 200 Text: Ping accepted.
失败示例:
GET /api/ping/notvalidaddress RESPONSE: Status Code: 400 Text: Ping failed: Invalid Bitcoin address. GET /api/ping/1EawBV7n7f2wDbgxJfNzo1eHyQ9Gj77oJd RESPONSE: Status Code: 404 Text: Ping Failed: Farmer not found.
在线状态-可读
这个api调用被构建为人类可读,而不是机器可读。我们得到一个简单的 所有农民的名单,他们的地址,和他们的广告高度。所有这些都是按高度排列的。 我们只显示在最后一个联机时间分钟内执行ping操作的农民,默认情况下 是15分钟。
GET /api/online
成功范例:
GET /api/online RESPONSE: Status Code: 200 Text: 18RZNu2nxTdeNyuDCwAMq8aBpgC3FFERPp | Last Seen: 3 second(s) | Height: 7634 137x69jwmcyy4mYCBtQUVoxa21p9Fxyss5 | Last Seen: 7 second(s) | Height: 6234 14wLMb2A9APqrdXJhTQArYLyivmEAf7Y1r | Last Seen: 10 second(s) | Height: 431 1CgLoZT1ZuSHPBp3H4rLTXJvEUDV3kK7QK | Last Seen: 13 second(s) | Height: 245 1QACy1Tx5JFzGDyPd8J3oU8SrjhkZkru4H | Last Seen: 14 second(s) | Height: 88 1NeV1z5BMmFpCXgotwVeZjuN5k124W76MA | Last Seen: 14 second(s) | Height: 10
在线状态-json
这个api调用被构建为人类可读,而不是机器可读。我们得到一个简单的 所有农民的名单,他们的地址,和他们的广告高度。所有这些都是按高度排列的。 我们只显示在最后一个联机时间分钟内执行ping操作的农民,默认情况下 是15分钟。Last Seen是自上次看到Farmer调用API以来的秒数。
GET /api/online/json
成功范例:
GET /api/online RESPONSE: Status Code: 200 Text: { "farmers": [ { "btc_addr": "1JdEaubcd36ufmT64drdVsGu5SN65A3Z1L", "height": 0, "last_seen": 30 }, { "btc_addr": "1JdEaubcM36ufmT64drdVsGu5SN65A3Z1A", "height": 0, "last_seen": 2 } ] }
地址
显示用于节点身份验证的唯一地址。
GET /api/online RESPONSE: { "address": "16ZcxFDdkVJR1P8GMNmWFyhS4EKrRMsWNG" }
总字节数
获取当前由节点管理的总TB数。
GET /api/total
成功范例:
GET /api/total RESPONSE: Status Code: 200 Text: 35 TB
广告高度
允许用户让节点知道他们通过客户端生成方案生成了多少空间。
GET /api/height/<bitcoin address>/<height>
成功范例:
GET /api/height/191GVvAaTRxLmz3rW3nU5jAV1rF186VxQc/50 RESPONSE: Status Code: 200 Text: Height accepted.
失败示例:
GET /api/height/notvalidaddress/50 RESPONSE: Status Code: 400 Text: Ping Failed: Invalid Bitcoin address. GET /api/height/1EawBV7n7f2wDbgxJfNzo1eHyQ9Gj77oJd/50 RESPONSE: Status Code: 404 Text: Ping Failed: Farmer not found.