Ethernity Cloud SDK Python
Project description
The Python implementation of the Ethernity CLOUD SDK protocol
Ethernity Cloud SDK PY
This project provides a set of tools and scripts to work with the Ethernity Cloud SDK in a python environment.
Table of Contents
Installation
To install the package and its dependencies, run:
python -m venv venv
source venv/bin/activate # for MacOS and Linux
venv\Scripts\activate # for Windows
pip install ethernity-cloud-sdk-py
Usage
After installation, you can use the provided scripts to build, publish, and initialize your project.
Pre-requisites
The sdk requires the following to be installed on your system:
- python 3.10+
- docker (daemon running in the background for build and publish scripts)
- docker-compose (for the build and publish scripts)
Operating System compatibility
The sdk has been tested on the following operating systems:
- Windows 10
- linux (Ubuntu 20.04)
Blockchain compatibility
- Bloxberg:
- Testnet - tested and working
- Mainnet - to be provided during the following updates
- Polyhon:
- Amoy Testnet - to be provided during the following updates
- Mainnet - to be provided during the following updates
Scripts
-
Initialize: To initialize the project, run:
ecld-init
at this step, all the initial configurations will be set up and the project will be ready to be built, published and run.
-
Build: To build the project, run:
ecld-build
the project will be built and the docker repository output will be stored in the
registry/
directory. This is the stage where the backend functions are added to the secure images. -
Publish: To publish the project, run:
ecld-publish
Required after build, to build and integrate the secure certificates that will be used during executions and to register the project to the Ethernity Cloud Image Register.
-
Run: To run the project, run:
python src/ethernity_task.py
command to start the demo application and test the integration.
Usage
To use the SDK:
- after installation, run
ecld-init
to initialize the project - in you workspace, you will find the
scr/serverless
directory, this contains abackend.py
file. This file will be imported in the dApp images to provide the backend functions for calling from the frontend of your application, eg.:
def hello(msg='World'):
return "Hello "+msg
From your py application, using the ethernity cloud runner library, you will be calling the function as seen in the below example, where we pass hello("World")
to be executed on the backend which will run in the Blockchain:
import os
import sys
from dotenv import load_dotenv
load_dotenv()
from ethernity_cloud_runner_py.runner import EthernityCloudRunner # type: ignore
def execute_task() -> None:
ipfs_address = "http://ipfs.ethernity.cloud:5001/api/v0"
code = 'hello("Hello, Python World!")'
runner = EthernityCloudRunner()
runner.initialize_storage(ipfs_address)
resources = {
"taskPrice": 8,
"cpu": 1,
"memory": 1,
"storage": 1,
"bandwidth": 1,
"duration": 1,
"validators": 1,
}
# this will execute a new task using Python template and will run the code provided above
# the code will run on the TESTNET network
runner.run(
os.getenv("PROJECT_NAME"),
code,
"0xd58f5C1834279ABD601df85b3E4b2323aDD4E75e",
resources,
os.getenv("ENCLAVE_NAME_TRUSTEDZONE", ""),
)
if __name__ == "__main__":
execute_task()
- you are able to define the functions needed to be used in the backend, while making sure that the function that is script is compilable and that it exports the function that will be called from the frontend, in the above example, the
hello
function.
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ecld-cloud-sdk-py-0.1.31.tar.gz
.
File metadata
- Download URL: ecld-cloud-sdk-py-0.1.31.tar.gz
- Upload date:
- Size: 918.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
b78765d66b9ece0162cc6c6cf6437acebb7a9609527f2de0775b4e2564987bca
|
|
MD5 |
cd6f2f8c6c0c354c2a7b12de6f2fa45d
|
|
BLAKE2b-256 |
90be309a077f4d3a1d10a36d81871d17682267e26503e49b993be61c2541ac18
|
File details
Details for the file ecld_cloud_sdk_py-0.1.31-py3-none-any.whl
.
File metadata
- Download URL: ecld_cloud_sdk_py-0.1.31-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
b5842189aa62383842be9072ba698ee7af10815fd70549870b2f95f0e0bddbaf
|
|
MD5 |
b262b9936faeb6648a566ed57c48299d
|
|
BLAKE2b-256 |
18573efc929f1c0875914e016f6856d2b97c2e571245bfef4897e344151dc599
|