Skip to main content

Ethernity Cloud SDK Python

Project description

Ethernity Cloud logo

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 a backend.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecld-sdk-py-0.1.31.tar.gz (917.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecld_sdk_py-0.1.31-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file ecld-sdk-py-0.1.31.tar.gz.

File metadata

  • Download URL: ecld-sdk-py-0.1.31.tar.gz
  • Upload date:
  • Size: 917.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.7

File hashes

Hashes for ecld-sdk-py-0.1.31.tar.gz
Algorithm Hash digest
SHA256 dbe8d73d1e409489e95fe4cd3993f2924d64a4521f381f66c86b4232e57ed3ea
MD5 cb9bd0aad7308fd873bcb08154952db7
BLAKE2b-256 8c7f3919adcfafdbb60447b502ee44807ec0de1ac289d0f8553aef3e8559573e

See more details on using hashes here.

File details

Details for the file ecld_sdk_py-0.1.31-py3-none-any.whl.

File metadata

  • Download URL: ecld_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

Hashes for ecld_sdk_py-0.1.31-py3-none-any.whl
Algorithm Hash digest
SHA256 82be769acd566fccd870d1f15000131854270622b6ff6ed70c7716f96ab056b9
MD5 9d9c16823f91fa603579033ecdf1b308
BLAKE2b-256 7d387f896e1104b26452ced37f9b68d9cc0d90856dd4be86caabc1532847e985

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page