Giter Club home page Giter Club logo

learnthechain's Introduction

LearnTheChain

Built with nextjs + socketio and inspired by this example

Learn the chain is a simple web app that aims to teach others about blockchain. It achieves this by demonstrating high level blockchain concepts using a simple web graphic. We attempted to convey the following points:

  1. Decentralized ledger A user can create a room that hosts a tree visible to anyone that joins the room. This tree utilizes websockets to simulate a decentralized ledger.

  2. Hashing Each node in the tree has it's own unique hash. Each following node in the tree has a previous hash attribute that points to the previous node. The chain becomes immutable through the use of these linked hashes.

  3. Mining Every person that joins the room contributes to the chain. The more people in the room, the faster the mining process proceeds.

Potential Future Features:

  1. PoW There is currently no proof of work system. Definitely an option for the future.
  2. Trading Would be nice/cool to see others able to trade with each other in addition to the current mining system
  3. Privacy How do we demonstrate private vs public keys
  4. Defensibility Perhaps including a "hacking" button to demonstrate how the chain prevents one individual from mining considerably more resources than the rest

How to use

Install it and run:

$ npm install
$ [PORT=XXXX] node server.js

learnthechain's People

Contributors

rickyplouis avatar

Watchers

 avatar

learnthechain's Issues

Timer as function of users

Force timer to increment as a function of the number of users in the room. Not sure what the factor will be but could possibly increment by:

(num of user x percent) per second

1 user = 1 percent per second
10 users = 10 percent per second
etc...

Readme

Update readme to accurately reflect:

Hashing/Links
Decentralization
Mining

Home Page

Update home page to accurately reflect the initial flow of the app

Block naming collisions

Seperate block names from ids to prevent duplicate naming which causes crashing (do the same thing for users as well)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.