Skip to content

edenia/tikuna

Repository files navigation

Tikuna, a proof-of-concept P2P network security monitoring system for the Ethereum blockchain. By leveraging Machine Learning techniques, it will extract security and performance insights for early detection of relevant incidents. Tikuna will bring improved visibility to the security state of the P2P network.

Table of Contents

About the Project

We will investigate how to apply Machine Learning algorithms to monitor the security of the Ethereum P2P network for early detection of a few specific attacks. We will develop Tikuna, a proof-of-concept tool (open source so that every user can use it) derived from such research, and will provide a scientific report based on the findings of applying the tool to the mainnet network. We will also provide a simple dashboard for the community to observe the insights that Tikuna provides. Additionally, we will create a draft of a scientific paper based on the research results.

Project Purpose

Tikuna will help the Ethereum community to gain visibility on the status of the P2P network and be aware of potential attacks.

The overall goal of the project is to support the Ethereum community by providing them with an intelligent state of the art tool capable of collecting security-related information from the state of the P2P network and improve the network visibility by providing insights about its current state. Such measurable information and insights criteria can help us to measure the success of our approach by the number of identified incidents and the number of discovered insights. Therefore, our tool will play a major role in improving the overall Ethereum network security.

Project Roadmap

  1. Research state of the art of Ethereum P2P network security.
  2. Set up ETH nodes for collecting + analyzing data, defining ML algorithms & developing/adapting selected algorithms for data analysis.
  3. Find insights from the data analysis to develop or adapt a dashboard and alerts.
  4. Deliverables include a scientific report about the findings, open-source code of the developed security tools, and a proof-of-concept dashboard with security-related insights.

Before starting

  • Install docker https://docs.docker.com/engine/install/. If you have previously installed Docker, verify it using the docker --version command and proceed to the next step.
  • Create a local directory named /data; if this directory already exists, proceed to the next step.
  • Copy the folders that contain the data to the /data directory created in the previous step.

Installation

To run this project, install it locally using:

- $ git clone https://github.com/edenia/tikuna
- $ cd tikuna
- $ docker build -t tikuna:latest .

Quick start

To begin using Tikuna, perform the steps below.

  • Inside the Tikuna project directory, go to the bin folder and execute the following command to start a docker container:
       $ ./start_tikuna.sh
  • Once inside the docker container execute the following command to launch a Jupyter Notebook session in which the machine learning algorithms can be executed using Ethereum data:
       $ ./bin/start_jupyter_notebook.sh
  • After executing the previous command, you only need to open a browser, and then copy & paste the displayed URL.
  • In the web browser, navigate to the analysis folder, and then click over it.
  • Click on ethereum_lstm_log.ipynb file.
  • For each step, click the Run button and wait until the results are displayed on the screen.

Documentation

The documentation website tikuna.io is built using Docusaurus 2, a modern static website generator.

Build the documentation

  • Clone this repo using git clone https://github.com/edenia/tikuna.git
  • Move to the appropriate directory: cd tikuna/docs.
  • Run yarn in order to install dependencies. At this point you can run yarn start to see the development website at http://localhost:3000.

File Structure

This could help the reader understand the organization inside the project, for example:

/
├── docs/ ........................... Docusaurus Documentation Engine
│   ├── docs/ ....................... Markdown Documents
│   └── docusaurus.config.js ........ Docusaurus Configuration File
├── LICENSE ......................... License Agreement
└── README.md ....................... This File

Contributing

If you want to make a contribution, please follow the next steps:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m '<type>(<scope>): <subject>')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please Read EOS Costa Rica's Open Source Contributing Guidelines for more information about programming conventions.

If you find a bug, please report big and small bugs by opening an issue

Project Status

Project is: in progress

Acknowledgements

The Tikuna team gratefully acknowledges that the work presented was supported by the Ethereum Foundation.

Contact

Created by Tikuna team @Tikuna team - feel free to contact us!

About Sakundi

Sakundi is a research-based Blockchain security and privacy organization. It offers security monitoring solutions for Blockchain organizations and distributed applications based on Artificial Intelligence tools.

sakundi.io

About Edenia

Edenia runs independent blockchain infrastructure and develops web3 solutions. Our team of technology-agnostic builders has been operating since 1987, leveraging the newest technologies to make the internet safer, more efficient, and more transparent.

edenia.com

License

This project is open source and available under the Apache License Version 2.0.