Changelog
There are three major pieces of functionality delivered with the 0.2.0 release:
GAOM API
As implemented so far, the Golem Application Object Model API enables external applications (including the `dapp-manager`) to query the internal state of `dapp-runner` and the application it's running, including the configured payloads, networks and service instances. It provides information regarding their detailed state, as well as e.g. which specific provider a given component is deployed to.
To enable the API, pass `--enable-api` flag to the `dapp-runner` executable. It listens on the localhost's port `8000` by default.
Example GAOM node entry:
nodes:
db:
activity:
id: 78f6a128984746c7bb0f53297acc845a
agreement:
id: 5f04d196925ccc2ccfb41c403c5163715fbcda419ad49024a1ca2fa29d4789f0
provider_id: '0xdcb36cd6f3704879978c1322708f757b0c82d709'
provider_name: golem2004_0.h
depends_on: []
http_proxy: null
init:
- cmd: run
params:
args:
- /bin/run_rqlite.sh
ip: []
network: default
network_node:
ip: 192.168.0.2
node_id: '0xdcb36cd6f3704879978c1322708f757b0c82d709'
payload: db
state: running
tcp_proxy: null
Additionally, the values of the model can now contain references to GAOM itself, e.g.:
nodes:
http:
payload: "http"
init:
- run:
args: ["/bin/bash", "-c", "python app.py --db-address ${nodes.db.network_node.ip}"]
Dynamically generated manifests
There's no longer need to prepare a manifest for apps that connect to external network locations defined within providers' whitelists. In cases like that, a manifest requires no signature and can be generated on the fly.
Example:
payloads:
backend:
runtime: "vm/manifest"
params:
manifest_generate:
image_hash: "e3c964343169d0a08b66751bfba89a90ec97544d8752c9a3e4ae0901"
outbound_urls:
- "http://bor.golem.network"
Manifest verification support
On the other hand, when a manifest is indeed provided, `dapp-runner` will now automatically perform its validation, checking whether it satisfies the schema, whether it's within its validity period and whether its contents are consistent with the provided signature (if used).
Details
Major features
* GAOM API by shadeofblue in https://github.com/golemfactory/dapp-runner/pull/102 and https://github.com/golemfactory/dapp-runner/pull/104
* Support for dynamically generated VM payload manifests by shadeofblue in https://github.com/golemfactory/dapp-runner/pull/106
* Manifest verification support by shadeofblue in https://github.com/golemfactory/dapp-runner/pull/112
Minor features
* add a representation of nodes in a pre-pending state by shadeofblue in https://github.com/golemfactory/dapp-runner/pull/105
Maintenance
* Port `dapp-runner` to `pydantic` by shadeofblue in https://github.com/golemfactory/dapp-runner/pull/100
**Full Changelog**: https://github.com/golemfactory/dapp-runner/compare/0.1.2...0.2.0