{"id":24247241,"url":"https://github.com/coindev1029/go-blockchain-application","last_synced_at":"2026-04-16T05:04:36.805Z","repository":{"id":212149730,"uuid":"730358527","full_name":"Coindev1029/Go-blockchain-application","owner":"Coindev1029","description":"Blockchain built in Golang","archived":false,"fork":false,"pushed_at":"2024-05-24T07:18:41.000Z","size":11419,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T16:14:42.637Z","etag":null,"topics":["api-gateway","blockchain","blockchain-technology","docker","docker-compose","golang","react","typescript"],"latest_commit_sha":null,"homepage":"https://elarsaks.github.io/Go-blockchain/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Coindev1029.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-11T18:46:17.000Z","updated_at":"2024-06-09T01:35:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"60e7e93a-40ab-40cb-a118-4cc5e1c88040","html_url":"https://github.com/Coindev1029/Go-blockchain-application","commit_stats":null,"previous_names":["maeda614/crypto","tanaka1029/go-blockchain-application","coindev1029/go-blockchain-application"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Coindev1029/Go-blockchain-application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coindev1029%2FGo-blockchain-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coindev1029%2FGo-blockchain-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coindev1029%2FGo-blockchain-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coindev1029%2FGo-blockchain-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Coindev1029","download_url":"https://codeload.github.com/Coindev1029/Go-blockchain-application/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Coindev1029%2FGo-blockchain-application/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31872036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","blockchain","blockchain-technology","docker","docker-compose","golang","react","typescript"],"created_at":"2025-01-14T23:32:28.321Z","updated_at":"2026-04-16T05:04:36.772Z","avatar_url":"https://github.com/Coindev1029.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Go-blockchain\n- [*LIVE EXAMPLE*](https://elarsaks.github.io/Go-blockchain/)  \n🔴 𝗡𝗼𝘁𝗲: The backend of this project has been deactivated to reduce unnecessary costs.\n- [*PROJECT WIKI*](https://github.com/elarsaks/Go-blockchain/wiki)\n\n# Table of Contents\n1. [About](#about)\n2. [Workflow](#workflow)\n3. [Components](#components)\n4. [Installation and Running](#installation-and-running)\n   - [Run All in Docker](#run-all-in-docker)\n   - [Run React Dashboard as Standalone](#run-react-dashboard-as-standalone)\n   - [Run Wallet Server as Standalone](#run-wallet-server-as-standalone)\n   - [Run Miner / Node as Standalone](#run-miner--node-as-standalone)\n\n# About  \nThis project is a Docker-based blockchain application that is currently under development. It is written in Golang and features a user interface built in React. The application is composed of several key components, each serving a unique role in the overall functionality of the system.\n\n**This project serves two main purposes:**\n\n1. **Skill Development:** It provides an excellent opportunity to push the boundaries of my technical skills and deepen my understanding of Blockchain technology.\n\n2. **Community Resource:** I'm dedicated to creating a robust codebase that can serve as a valuable learning resource for anyone interested in this technology.\n\n\n![Topology Diagram](https://github.com/elarsaks/Go-blockchain/blob/main/docs/topology.png)\n\n\n# Workflow\nUsers can access the client UI to interact with the blockchain. The API gateway processes these interactions and communicates with the blockchain miner nodes. These nodes then process transactions and maintain the distributed ledger of the blockchain.\n\n**The Docker configuration of this application ensures easy deployment and scalability, making it a robust and flexible solution for blockchain applications.**\n\n\n# Components\n- **Client UI (React Dashboard):** The client user interface is a visual dashboard built using React. This dashboard serves as the primary point of interaction for users with the blockchain. It provides a user-friendly interface for executing various operations on the blockchain.\n\n- **API Gateway (Wallet Server):** The API Gateway, also known as the Wallet Server, is a web server developed in Golang. It acts as a bridge between the client UI and the blockchain, managing requests from the client and forwarding them to the appropriate APIs.\n\n- **Blockchain Miner Nodes (Golang APIs):** The backbone of the blockchain is formed by three Golang APIs that function as blockchain miner nodes. These nodes are responsible for performing mining operations and maintaining the integrity of the blockchain.\n\n\u003cimg src=\"https://saks.digital/wp-content/uploads/2023/07/some.png\" alt=\"Image Description\" /\u003e\n\n# Installation and running\n\n## Run all in Docker\n**Dependencies:**  \n- Docker \u0026 Docker Compose  \n\n**Running:**  \n- To run full-stack application in docker, at the root of this project folder run:\n```bash\ndocker-compose up --build\n```\n\n**Apps will start on ports:**\n| App              | URL                                 |\n|------------------|-------------------------------------|\n| react_dashboard | [http://localhost:3000](http://localhost:3000) |\n| wallet_server   | [http://localhost:5000](http://localhost:5000) |\n| miner_1         | [http://localhost:5001](http://localhost:5001) |\n| miner_2         | [http://localhost:5002](http://localhost:5002) |\n| miner_3         | [http://localhost:5003](http://localhost:5003) |\n\n---\n\u003cbr\u003e\u003c/br\u003e\n## Run React Dashboard as standalone \n**Dependenies:**    \n- Node v17  \n\n**Installation:**  \nTo set up the UI (client), run the following command in this *Go-Blockchain/react_dashboard/*:\n```bash\nnpm install\n```\n\n**Running:**  \nTo run the UI, use the following command in this folder:\n```bash\nnpm start\n```\n\n**App will start on port:**\n| App              | URL                                 |\n|------------------|-------------------------------------|\n| react_dashboard | [http://localhost:3000](http://localhost:3000) |\n\n\n---\n\u003cbr\u003e\u003c/br\u003e\n## Run Wallet Server as standalone\n**Dependenies:**  \n- Golang\n- Air  \n\n**Installation:**  \nIf you haven't already installed the project from the parent folder, follow these steps to set up the Wallet Server:\n1. Navigate to the root folder of the project in your terminal.\n2. Run the following command to download the necessary dependencies:\n```bash\ngo mod tidy\n```\n\n**Running:**  \nTo run the app with the Air library (live reloading), execute the following command in *Go-Blockchain/wallet_server/*:\n```bash\nPORT=8081 HOST=127.0.0.1 GATEWAY_PORT=5001 air\n```\nTo run it directly via Golang, execute the following command in this folder:\n```bash\ngo run main.go blockchain_server.go -port 5001\n```\n**App will start on port:**\n| App              | URL                                 |\n|------------------|-------------------------------------|\n| wallet_server | [http://localhost:3000](http://localhost:3000) |\n\n---\n\u003cbr\u003e\u003c/br\u003e\n## Run Miner / Node as standalone\n**Dependenies:**  \n- Golang\n- Air  \n\n**Installation:**  \n1. Navigate to the root folder of the project in your terminal.\n2. Run the following command to download the necessary dependencies:\n```bash\ngo mod tidy\n```\n\n**Running:**  \nTo run the app with the Air library (live reloading), execute the following command in *Go-Blockchain/blockshain_server/*:\n```bash\nPORT=5001 air\n```\n\n**OR:**  \n\nTo run it directly via Golang, execute the following command in *Go-Blockchain/blockshain_server/*:\n```bash\ngo run main.go wallet_server.go -port 8080 -gateway http://127.0.0.1:5001\n```\n\n**App will start on port:**\n| App              | URL                                 |\n|------------------|-------------------------------------|\n| blockshain_server | [http://localhost:3000](http://localhost:3000) |\n\n**NOTE:**  \n**These commands run only one miner. If you want to run multiple miners, open multiple new terminals and run the same command with different port numbers.**\n\n**Feel free to adjust the port numbers as needed to run multiple miners concurrently.**\n\n\n\nK8-s (Under development)\n------------------------\n\nTo run it in kubernets, execute the following command in *Go-Blockchain/k8s/*:\n```bash\nkubectl apply -f .\\deployment.yaml\n```\n\nTODO: \n- Fix networking between pods (Use env variables)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoindev1029%2Fgo-blockchain-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoindev1029%2Fgo-blockchain-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoindev1029%2Fgo-blockchain-application/lists"}