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.
- About the Project
- Project Purpose
- Project Roadmap
- Installation
- Teck Stack
- File Structure
- Project Status
- Contributing
- Acknowledgements
- Contact
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.
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.
- Research state of the art of Ethereum P2P network security.
- Set up ETH nodes for collecting + analyzing data, defining ML algorithms & developing/adapting selected algorithms for data analysis.
- Find insights from the data analysis to develop or adapt a dashboard and alerts.
- 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.
- Install docker
https://docs.docker.com/engine/install/
. If you have previously installed Docker, verify it using thedocker --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.
To run this project, install it locally using:
- $ git clone https://github.com/edenia/tikuna
- $ cd tikuna
- $ docker build -t tikuna:latest .
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.
The documentation website tikuna.io is built using Docusaurus 2, a modern static website generator.
- 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 runyarn start
to see the development website at http://localhost:3000.
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
If you want to make a contribution, please follow the next steps:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m '<type>(<scope>): <subject>'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - 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 is: in progress
The Tikuna team gratefully acknowledges that the work presented was supported by the Ethereum Foundation.
Created by Tikuna team @Tikuna team - feel free to contact us!
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.
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.
This project is open source and available under the Apache License Version 2.0.