Charity Engine Remote Job Submission API
...
Textstyles | ||
---|---|---|
|
WORK IN PROGRESS | Services are in active development and are subject to change |
...
The Remote Job Submission API enables integration of Charity Engine as a backend service and provides functions for managing the entire lifecycle of jobs submitted to the network.
Info |
---|
See Computing with Charity Engine for a contextual overview of the Charity Engine ecosystem (including additional interfaces such as Remote CLI, Ethereum Smart Contract, and Ethereum Dapp). |
Contents
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
General Usage
The endpoint for all calls is: https://api.charityengine.services/remotejobs/v2/
Panel | |||||
---|---|---|---|---|---|
|
The endpoint accepts a JSON payload within a POST request, unless otherwise specified.
Also see External APIs, which lists APIs that the Remote API is able to call.
API definition
Open API (Swagger) Integration for Confluence | ||||||
---|---|---|---|---|---|---|
| ||||||
External APIs (draft)
Charity Engine can call the following API endpoints upon circumstances outlined in this document. An HTTP POST request with JSON payload will be dispatched to a URL hosted by the compute provider or other external services.
HTTP Basic authorization for API endpoint URLs is supported.
compute-launch
When compute capacity is purchased on the Charity Engine marketplace, Charity Engine can call a compute provider’s API endpoint to launch reserved compute capacity.
Parameters
Code Block | ||
---|---|---|
| ||
ComputeCapacity[] capacity // List of ComputeCapacity objects, one per instance type that is being reserved.
float duration // Maximum number of hours the compute capacity is reserved for. Compute payloads may exit early. |
Expected results
Code Block | ||
---|---|---|
| ||
int count // Number of successfully launched instances.
string error // Error message, if any. Optional.
|
Testing + Troubleshooting
Testing via CURL
To use cURL to submit a job from a .json file:
Code Block | ||
---|---|---|
| ||
$ curl -v "content-type: application/json" https://api.charityengine.services/remotejobs/v2/job-create -d @example-job-create.json |
Contents of the POST data (example-job-create.json file):
Code Block | ||
---|---|---|
| ||
{
"authenticator":"c503d86bc4e82d9415cb5912a0986c80",
"app":"charityengine:wolframengine",
"commandLine":"math 2+2 > output/out.txt",
"specs": {
"vcpus":2,
"ram": 512,
"disk": 512,
"networkDownload": 0,
"networkUpload": 0
},
"hours": 1,
"inputFiles": [
{
"filename": "in.txt",
"url": "http://work.charityengine.com/rytis/mathtest.m"
}
]
} |
Troubleshooting
If trouble occurs on the execution node, it can be helpful to set the useOwnDevices
parameter to true
during job-create
. This causes the job to be given to a node operated by the account that submitted the job, rather than sending it out to other qualified nodes in the Charity Engine device pool.
Info |
---|
The |