Giter Site home page Giter Site logo

vanities / bitchan Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 0.0 8.24 MB

a message board on ethereum

License: MIT License

Dockerfile 0.57% Makefile 2.57% HTML 1.48% JavaScript 12.72% TypeScript 65.04% CSS 5.87% Shell 0.16% Solidity 11.58%
ethereum typescript

bitchan's Introduction

bitchan

Build and Test Contracts Build and Test Client Build and Deploy Contracts to Ropsten

Bitchan is an ethereum message board republic.

Just as some people have abused their power throughout history, we now see others abusing their power in the present.

Because human beings can’t handle power. We are not good at handling power over others. Nothing corrupts us quicker, nothing degrades our ethics more, than having power over others.

Governance

This is a missing link of democracy in the public forum.

Destruction from outside forces

Having an immutable backend means not having to deal with government thugs. If you want to spin a front end up your own, the goal would be to have an easily accessible api.

Destruction from within

Typically Benevolent Dictators For Life (BDFL), rule a website without transparency and destroy the community from within with extremely shady moderation. Strategies like shadowbanning, editing posts will not be allowed.

Vote for leaders

Moderators, Janitors, and privileged users will be voted on to represent the registered users in a democratic vote among registered users of the age of 1 year.

Contract imperitives:

  1. The contract owner shall be the president for the first year of office
  2. Registered users shall vote after the age of 1 year of lurking
  3. The President shall recieve the funding to be the leader of the board

Combating bots

Having a fee to post promotes speech in the following ways:

  • No ads
  • No CAPTCHA where google makes you train their car self-driving algorithms for free and causes you to solve multiple puzzles that cost you more than 30 seconds
  • Incentivize the president to clean the board
  • No vpn/proxy spamming the board with ads, and if they do, they're paying the president

Creating multiple spam accounts

  • registered accounts can buy invite codes to give to people where the invite code cost scales logarithmically
  • registered users can peer to see who has invited who and can report bad actors

Presidential capabilites

  • making sticky posts
  • restricting user sign up
  • changing the create thread fee
  • changing the reply post fee
  • removing/hiding posts
  • drawing out money from created threads and posts

MVP

Working user signup, single board, admin access to the contract owner.

Roadmap

This includes tests!

Backend Contracts on ethereum

  • Basic User
  • Basic Client
  • Basic Board
  • Basic Admin control
  • Governance
  • Personal Messaging

Frontend client to interpret the backend state

  • User Signup/Login
  • Create post and reply
  • Hide Post filters
  • Submit application for leadership
  • Submit vote for leadership
  • Personal Messaging

Development

Quick install & Run

See the Makefile for more simple commands

  1. Download and Install docker
  2. Download and Install docker-compose
  3. $ git clone https://github.com/vanities/bitchan.git
  4. $ make up

Structure

The development backend and frontend interact using the truffle stack.

Backend

The backend is written in solidity contracts using Ethereum. The Contracts used right now are User for user creation and and Bitchan for the basic messaging board component.

Frontend

The frontend is written in javascript/typescript and react.

Testing

Local
  1. follow the Quick install & Run
  2. Go to http://127.0.0.1:3001 in your browser
  3. Install Metamask for whatever browser you're using
  4. Open Metamask
  5. enter 0x2264248e750146323373851aec1f3f700f6d9ed0ebdc934137c9e007a047197f into metamask as a private key, it has 1 ETH.
  6. Ensure you're connected to the local node
Backend

Testing the backend contracts can be done here and is written in solidity and typescript using truffle.

$ make test_contracts

Frontend

Testing the frontend can be done here and is written in typescript.

$ make test_client

Stop

$ make down

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.