PlebLab / Top-Builder

Welcome to PlebLab's Startup Day, a dynamic gathering for Bitcoin startups, featuring the Top Builder competition as its centerpiece. This event is a hub of activity, offering builder sessions, workshops, announcements, and speaker panels, all aimed at fostering growth and learning within the Bitcoin community.
https://pleblab.dev
7 stars 0 forks source link

[Top Builder 2024]: Bitcoineando_R2 #32

Open esixce opened 8 months ago

esixce commented 8 months ago

🏗️ Top Builder 2024 Application Form to track progress through Round 1 - 3 ~ Currently in Round 1

📝 Instructions

  1. Only complete this form if you have been chosen for Top Builder, by PlebLab.
  2. Provide detailed information to assist the judges in evaluating your project.

🧑‍🤝‍🧑 The Team

💡 The Idea

This is not another price action tracker. The idea is to step away from traditional interpretations of money and look at Bitcoin for what it is. I’m interested in charts that allow the client to pick the variables. I want to expose the complexity that mainstream Bitcoin seeks to hide.

📚 Additional Information

📌 Submission Type

🚀 Current Project Progress

⏳ Round 1 Milestone

📝 Submission Complete

📅 Top Builder Program Structure

Registration Opens: Monday, December 18, 2023

Round 1: January 13 - February 10, 2024

Round 2: February 10 - 24, 2024

Round 3: Starting February 24, 2024

Final Round at Startup Day: March 14, 2024

esixce commented 8 months ago

Round One Progress

I was able to fix the configurations of the prototype or, rather, the sketch of the site.

bitcoiniando.com

Github repos:

Completed Round 1 Milestones:

Pending:

Additional Deliverables for Milestone 1:

Treemap D3 Angular integrated Pending: styling and get data from api Image

Relational database with blocks, txs, vout, addresses, coinbase. Sneak peak: Image

Image

ER Diagram for relational database.

Image

esixce commented 7 months ago

Round One - Milestone Deliverable Report

Overview

During Week 1, we successfully completed several milestones as outlined below. The focus was on setting up the basic infrastructure, establishing communication between frontend and backend, and laying the groundwork for real-time updates and data visualization.

Completed Milestones

  1. Base Angular Frontend with Login

    • Developed the frontend interface using Angular framework.
    • Implemented user authentication and login functionality.
  2. Base Rust Backend with Auth, OAuth

    • Created a backend server using Rust.
    • Implemented authentication mechanisms including OAuth.
  3. Communication Setup: Frontend to Backend (HTTP)

    • Established communication channels between the frontend and backend using HTTP protocols.
  4. Communication Setup: Backend to RDS

    • Enabled communication between the backend server and the Relational Database Service (RDS).
  5. Node Running in EC2 Instance

    • Successfully deployed the backend server on an EC2 instance.
  6. Hosting MySQL RDB in AWS

    • Set up and configured a MySQL database on AWS for storing blockchain data.
  7. MySQL Scripts for Various Data Entities

    • Developed MySQL scripts for handling block, transaction, coinbase, vin, vout, and user data.

Pending Milestones

  1. Configure ZeroMQ for Real-time Blockchain Updates

    • Pending setup of ZeroMQ to enable real-time updates from the blockchain.
  2. Establish Communication: Frontend to Backend (WebSockets)

    • Need to establish WebSocket communication between the frontend and backend for enhanced real-time interaction.

Additional Deliverables for Milestone 1

  1. Populating RDB Using Python RPC Script

    • Currently in the process of populating the MySQL database using a Python RPC script, focusing on blocks at the 400,000th block.
  2. Creating Dataset for Treemap

    • In progress: Creating a dataset suitable for generating a Treemap visualization.
  3. Creating API Endpoint for Treemap Data

    • Planning to develop an API endpoint to provide Treemap data to the client application.
  4. Creating Treemap Visual of Blocks, Transactions, Vin/Vout

    • Intending to generate a Treemap visualization depicting blocks, transactions, and inputs/outputs.

Conclusion

The completion of these milestones marks significant progress towards our project goals. With pending tasks identified and additional deliverables outlined, we are well-positioned to advance to the next phase of development.

Blocks with data Image

Login System frontend Image Image

Cumulative fields for datasets Image

Querying backend from browser to get chart data Image

esixce commented 7 months ago

Round Two - Progress Chart

Overview

The following chart summarizes the progress made during Round Two of our project. Original Milestone Status
Hosting Frontend Completed
Hosting Backend In Progress
Hosting Node Completed
Hosting RDB Completed
Communication between frontend and backend via HTTP Completed
Communication between frontend and backend via WebSockets In Progress
Communication between the backend and the RDS Completed
Extraction of blockchain data In Progress
Automation of blockchain data In Progress
Configure ZeroMQ for real-time blockchain updates In Progress
Complete analysis of data and create additional intermediary tables In Progress
Complete API to feed selected datasets to the Client In Progress
Complete graphing for provided datasets Not Started
Translate Everything Not Started

Working towards achieving the flow seen in the diagram below: Image

Obstacles and Achievements

Discarded original EC2 instance and built new one from scratch with clean new node. Configured node to accept RPC calls, ZeroMQ, and mempool size. Moved the python script that is collecting data from the node to the EC2 instance. Configured the script to collect data from the new node on the new EC2 instance and post it to the mysql rds. Currently at 130'000. The script runs much faster in the EC2 instance than on my computer. Currently transferring data 24/7 at an approximate rate of 1 block per 3 seconds. Experimented with scripts to query the mempool and alert on desired behavior.

Hosted frontend and hosted backend. Not ready for general audience access. Pending:

There's four major fronts:

Been doing research on what analysis to run on the Bitcoin mempool. Its too expensive to collect all the mempool data so the only viable avenue is to run real-time analytics. I'm particularly interested in monitoring anomalies:

Then I can perform statistical analysis on the anomaly metrics in addition to the usual suspects like size over time or maybe it's more interesting to write a knapsack and show a sample block.

Conclusion

Ideas don't come fully formed. They take shape over time. You have to walk in shallow water to get to the deeper end of the pool. I feel like the blockhain data part of the project is like cleaning your room and putting all the toys in the correct drawer. The real magic happens when youre done cleaning your room, and you know where all the lego pieces are and you make a masterpiece.

The work im doing is tedious. Its not fancy. Its grunt work. But it holds potential energy. Eventually the scripts will be running in the background and it wont take physical labour for the structure to work. Then the data will work for me instead of me having to work for the data. I already felt that with the python script running in the ec2 instance.

esixce commented 7 months ago

Round Two - Milestone Deliverable Report

Overview

The following chart summarizes the progress made during Round Two of our project. Original Milestone Status Date
Hosting Frontend Completed 02/15
Hosting Backend Completed 02/18
Hosting Node Completed 01/14 & 02/10
Hosting RDB Completed 01/14
Communication between frontend and backend via HTTP Completed 01/30
Communication between frontend and backend via WebSockets In Progress
Communication between the backend and the RDS Completed 01/30
Extraction of blockchain data In Progress since 01/30
Automation of blockchain data In Progress
Configure ZeroMQ for real-time blockchain updates In Progress
Complete analysis of data and create additional intermediary tables In Progress
Complete API to feed selected datasets to the Client In Progress
Complete graphing for provided datasets Not Started
Translate Everything Not Started

Obstacles and achievements

API is persistent