Skip to content

vanities/bitchan

Repository files navigation

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