completed

PAB Container Log Processor

$3,500.00 Received
$3,500.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Addresses Challenge
Feasibility
Auditability
Solution

Develop a set of tools for parsing logs from the PAB so that they are queriable from the frontend to determine state following transactions.

Problem:

Currently, the PAB has only the returns the Haskell unit () (returned as [] in JSON). This value is irrelevant to any frontend.

Yes Votes:
₳ 71,945,722
No Votes:
₳ 9,394,903
Votes Cast:
216

This proposal was approved and funded by the Cardano Community via Project F7: Open Source Developer Ecosystem Catalyst funding round.

Detailed Plan

*Set up environment*

Set up a Plutus-starter (with volumes for modified directories) or other PAB container in either docker compose or Kubernetes.

*Logging sidecar*

Build a sidecar for docker compose or Kubernetes that reads PAB logs from either a volume or socket. There will likely not be any service discovery and will have to be configured in YAML for the particular service/pod that is emitting the logs.

This sidecar will be a container image that is configurable through environment variables (which themselves are configurable through either a compose YAML or a pod/deployment YAML). The sidecar will be small and the purpose would be to process the logs and re-output them to either an Elasticsearch cluster.

*Why Elasticsearch?*

Since Elasticsearch is already a RESTful framework, this lends itself well to queries from any frontend and impressive search characteristics. You could put the Elasticsearch cluster behind an API gateway and restrict it based on the project's needs. The purpose of feeding the processed logs into ElasticSearch is that you could define your indexing based on the type of transaction or occurrence on the PAB.

*Existing systems*

Current working PAB on the testnet with the current release of the plutus-apps package. Several contracts (state machine and standard) are written for Loxe inc. as well as PPP contracts that can be used for testing.

*Plan*

Dec-Jan - Describe best outputs for transaction information from PAB and write a guide on Text logs for use in this system.

Dec-Jan - Bring PAB, node, chain index, and wallet-server up on docker compose and Kubernetes.

Feb - build sidecar with YAML configuration for processing logs in standard format.

Mar - Test sidecar with multiple PAB configurations (docker and kubernetes)

Mar - Test configuration for exporting to elasticsearch.

Apr - Test frontend with queries.

*Metrics*

Jan - Working PAB, chain index, node, and wallet-server on testnet in kubernetes cluster (Cost for cluster $400/mo, but for testing approx $200/month since it does not need to be consistently available).

Feb - Logs being viewed by sidecar service

Mar - Logs being consumed by sidecar and ingested into elasticsearch service

Apr - Logs queriable in test frontend in reliable fashion from elasticsearch.

Community Reviews (1)

Comments

Monthly Reports

We are currently working on getting the PAB container working, but are facing some difficulties because the expected build on nixOs doesn't work as expected, what may cause some delay.

Disbursed to Date
$3,500
Status
Still in progress
Completion Target
5/31/2022
Comments 0

Login or Register to leave a comment!

We've have some progress and are quite on track with the planning we proposed.

Disbursed to Date
$3,500
Status
Still in progress
Completion Target
5/31/2022
Comments 0

Login or Register to leave a comment!

The project is almost done, and we are probably submitting the close-out report within 1 or 2 weeks.

Disbursed to Date
$3,500
Status
Still in progress
Completion Target
5/31/2022
Comments 0

Login or Register to leave a comment!

The project is almost done, and we are probably submitting the close-out report within 2 weeks.

Disbursed to Date
$3,500
Status
Still in progress
Completion Target
7/15/2022
Attachment(s)
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00