REST API server for fetching and sharing ColoredCoins transactions metadata.
$ npm i -g cc-metadata-server
Currently, the server uses AWS S3 storage service as a caching layer. So, in order to use the server one needs to set the environment variables:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_S3_BUCKET
Then, you can run the ColoredCoins metadata server with the following options:
$ cc-metadata-server [options]
Options:
-h, --help output usage information
-V, --version output the version number
-p, --port <port> Port to listen on
Or just run it with the defaults using:
$ cc-metadata-server
-
Query Parameters:
torrentHash
hex string of length 40, representing the SHA1 result of the origin metadata torrent filesha2
hex string of length 64, the SHA256 result ofJSON.stringify()
of the origin metadata
-
Success Response:
Code: 200 OK
Content: The origin metadata JSON -
Error Response:
Code: 400 Bad Request
Content:"Can't get metadata"
In case no file which correponds to giventorrentHash
andsha2
is found.
-
Body Parameters:
metadata
JSONtoken
JWT encoded by secret given in environment variableJWTTOKENSECRET
. Decode is of the format{iss: 'admin', exp: 'expiration'}
.
IfJWTTOKENSECRET
environment variable (or corresponding properties file field) is not given, this parameter is ignored.
-
Success Response:
Code: 200 OK
Content: Object which consists of the following:torrentHash
hex string of length 40, representing the SHA1 result of the origin metadata torrent filesha2
hex string of length 64, the SHA256 result ofJSON.stringify()
of the origin metadata
-
Error Response:
Code: 401 Unauthorized
In case giventoken
is not as expected.
-
Query parameters
torrentHash
hex string of length 40, representing the SHA1 result of the origin metadata torrent filetoken
JWT encoded by secret given in environment variableJWTTOKENSECRET
. Decode is of the format{iss: 'admin', exp: 'expiration'}
.
IfJWTTOKENSECRET
environment variable (or corresponding properties file field) is not given, this parameter is ignored.
-
Success Response:
Code: 200 OK
Content: The metadata file which has torrent which corresponds totorrentHash
, is seeded to BitTorrent network. -
Error Response:
Code: 401 Unauthorized
In case giventoken
is not as expected.Code: 400 Bad Request
Content:"Can't share metadata"
In case no file which corresponds totorrentHash
is found.
Note: this call should be preceded by a call to POST /addMetadata
Default configuration per environment (NODE_ENV
value) can be found in the config
directory.
You can use custom properties by adding properties.conf
to that folder.
- Fork this repo
- npm install
- use the Standard coding style when hacking the code - https://github.com/feross/standard
- Send us a pull request
ColoredCoins maintains a hosted version of this server at:
https://prod-metadata.coloredcoins.org