0.2.0
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 #102 and #104
- Support for dynamically generated VM payload manifests by @shadeofblue in #106
- Manifest verification support by @shadeofblue in #112
Minor features
- add a representation of nodes in a pre-pending state by @shadeofblue in #105
Maintenance
- Port
dapp-runner
topydantic
by @shadeofblue in #100
Full Changelog: 0.1.2...0.2.0