oceanprotocol-archive / bounties

🎣 Bounties for Ocean Protocol
Apache License 2.0
11 stars 0 forks source link

Ocean Bounty: Smart Contract Event Monitoring Tool #15

Closed Anirudh2490 closed 5 years ago

Anirudh2490 commented 5 years ago

Ocean Bounty: Smart Contract Event Monitoring Tool

How can you help?

We want to build a Smart Contract Events Monitoring Tool that helps track and visualizes events triggered on our keeper contracts. The tool must be capable of handling any type of Ethereum Smart Contract, but as a starting point, we encourage you to work with a contract in our Keeper Contracts repo. A good starting point could be our DIDRegistry Smart Contract.

How it works?

The purpose of the Ethereum Smart Contract Monitoring tool is to record and visualize events triggered by the smart contract. As seen in the below diagram, we have DID (Decentralized identifiers), SEA (Service Agreements) and Tokens (a store of value). Upon sending a request, the DID and SEA smart contracts, which have pre-defined events and methods, will send back a response. The idea is to set up Eventeum and configure the API with the list of addresses and events filters to listen to DIDRegistry Smart Contract responses. On the nile testnet, the Eventeum must be configured such that it picks up all info related to the event, and records it on the Elasticsearch database using Kafka Connect. The below diagram shows the high level overview of the task.

screenshot 2019-01-16 at 11 27 54

In order to build this tool, we will primarily need 3 components An Event Listener - We will be using Eventeum to function as an event listener for the smart contract, after which it broadcasts the real-time event feed to Kafka. Kafka acts as an events broker to handle this feed and store the events in ElasticSearch DB. Storage - ElasticSearch DB handles the storage of these events that is relayed to it via Kafka connect. Data Visualizer - The final piece would Kibana, which visualizes the data stored in the database.

The final solution must record an event in the database everytime a new DID is registered. For all those recorded events, Kibana visualizes them in the form of basic charts.

What needs to be done?

We want the final deliverable to be a Docker-Compose with multiple Docker images for each part of this application. The Docker Compose should consist of

Each docker image needs to be a part of the setup included in the master docker compose file. Everything should be easy to configure, and must allow subscription to multiple events, and move this information to Elastic Search.

We are very happy when

Seen this problem before?

Any help solving this is welcome. Feel free to leave any comments and help someone else to solve it. We might airdrop tokens to someone even if not directly completing bounty.

Questions & Reviews

Pull requests will be reviewed by one of the maintainers or long-term contributors. In case of any additional questions feel free to ask in this thread and we will do our best to add the missing info :)

Things to know

The bounty lifecycle process including payout will be managed using Gitcoin. We'll be responding to your questions here, but for discussion and clarification we recommend to join also our Gitter channel where our tech community is accessible. In order to see the PROCN balance in your wallet you'll need to reference the related token contract with address 0xf2aabdd898a0139195b2b5da7387d43a45ded254. If you use a Metamask plugin you'll find the the exact steps here. Lastly, even if it is a contest bounty, we will reward all valuable contributions and efforts. We greatly appreciate the value our open source community brings to Ocean and will always award some tokens to all great contributions! :smiley:

Reward

Once the project was reviewed and merged in the master branch, you will receive the reward. PROCN is a proto-Ocean token. Bounty hunters that earn PROCN will be able to convert them 1:1 to Ocean tokens on network launch (Ocean Token will be valued at at 0.22 EUR on network launch). Network launch is expected to happen by Mar 31, 2019. Until then PROCN will be locked and non-transferrable in the ETH wallet to which it is delivered to.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 10000.0 PROCN attached to it as part of the Ocean Protocol Foundation fund.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 1 week, 1 day ago. Please review their action plans below:

1) mestorlx has been approved to start work.

I am already familiar with the contracts since I updated them to zos . I will first create an image for Eventum and submit for review, then another for kafka and finally one for Elasticsearch . I would update the README accordingly.

Learn more on the Gitcoin Issue Details page.

mestorlx commented 5 years ago

@chalidbdb Just submitted initial PR please check oceanprotocol/events-monitor#1

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 10000.0 PROCN has been submitted by:

  1. @mestorlx

@chalidbdb please take a look at the submitted work:


gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 10000.0 PROCN attached to this issue has been approved & issued to @mestorlx.