{"id":20303152,"url":"https://github.com/vanities/bitchan","last_synced_at":"2025-04-11T13:44:03.232Z","repository":{"id":39005565,"uuid":"259782918","full_name":"vanities/bitchan","owner":"vanities","description":"a message board on ethereum","archived":false,"fork":false,"pushed_at":"2023-01-24T04:58:18.000Z","size":8436,"stargazers_count":5,"open_issues_count":20,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T10:02:33.454Z","etag":null,"topics":["ethereum","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/vanities.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}},"created_at":"2020-04-29T00:21:30.000Z","updated_at":"2025-03-11T16:15:18.000Z","dependencies_parsed_at":"2023-02-13T18:02:03.702Z","dependency_job_id":null,"html_url":"https://github.com/vanities/bitchan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanities%2Fbitchan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanities%2Fbitchan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanities%2Fbitchan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanities%2Fbitchan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vanities","download_url":"https://codeload.github.com/vanities/bitchan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248410884,"owners_count":21098790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ethereum","typescript"],"created_at":"2024-11-14T16:36:07.695Z","updated_at":"2025-04-11T13:44:03.209Z","avatar_url":"https://github.com/vanities.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bitchan\n![Build and Test Contracts](https://github.com/vanities/bitchan/workflows/Build%20and%20Test%20Contracts/badge.svg)\n![Build and Test Client](https://github.com/vanities/bitchan/workflows/Build%20and%20Test%20Client/badge.svg)\n![Build and Deploy Contracts to Ropsten](https://github.com/vanities/bitchan/workflows/Build%20and%20Deploy%20Contracts%20to%20Ropsten/badge.svg?branch=master)\n\n\nBitchan is an ethereum message board republic.\n\nJust as some people have abused their power throughout history, we now see others abusing their power in the present.\n\nBecause 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.\n\n\n## Governance\n\nThis is a missing link of democracy in the public forum.\n\n### Destruction from outside forces\nHaving an immutable backend means not having to deal with [government thugs](https://kiwifarms.net/threads/battle-for-section-230.70375/). If you want to spin a front end up your own, the goal would be to have an easily accessible api.\n\n### Destruction from within\nTypically Benevolent Dictators For Life (BDFL), rule a website without transparency and destroy the community from within with extremely shady moderation. Strategies like [shadowbanning](https://en.wikipedia.org/wiki/Shadow_banning), [editing posts](https://web.archive.org/web/20200419171435/https://www.reddit.com/r/announcements/comments/5frg1n/tifu_by_editing_some_comments_and_creating_an/) will not be allowed.\n\n### Vote for leaders\nModerators, 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.\n\nContract imperitives:\n1. The contract owner shall be the president for the first year of office\n2. Registered users shall vote after the age of 1 year of lurking\n3. The President shall recieve the funding to be the leader of the board\n\n### Combating bots\n\nHaving a fee to post promotes speech in the following ways:\n- No ads\n- 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\n- Incentivize the president to clean the board\n- No vpn/proxy spamming the board with ads, and if they do, they're paying the president\n\nCreating multiple spam accounts\n- registered accounts can buy invite codes to give to people where the invite code cost scales logarithmically\n- registered users can peer to see who has invited who and can report bad actors\n\n\n\n### Presidential capabilites\n\n- making sticky posts\n- restricting user sign up\n- changing the create thread fee\n- changing the reply post fee\n- removing/hiding posts\n- drawing out money from created threads and posts\n\n\n## MVP\n\nWorking user signup, single board, admin access to the contract owner.\n\n## Roadmap\n\nThis includes tests!\n\n\n### Backend Contracts on ethereum\n\n- [x] Basic User\n- [x] Basic Client\n- [x] Basic Board\n- [ ] Basic Admin control\n- [ ] Governance\n- [ ] Personal Messaging\n\n### Frontend client to interpret the backend state\n\n- [x] User Signup/Login\n- [x] Create post and reply\n- [ ] Hide Post filters\n- [ ] Submit application for leadership\n- [ ] Submit vote for leadership\n- [ ] Personal Messaging\n\n\n## Development\n\n### Quick install \u0026 Run\nSee the [Makefile](https://github.com/vanities/bitchan/blob/master/Makefile) for more simple commands\n\n1. Download and Install [docker](https://docs.docker.com/get-docker/)\n2. Download and Install [docker-compose](https://docs.docker.com/compose/install/)\n3. `$ git clone https://github.com/vanities/bitchan.git`\n4. `$ make up`\n\n\n### Structure\n\nThe development backend and frontend interact using the truffle stack.\n\n##### Backend\n\nThe backend is written in [solidity contracts](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html) using [Ethereum](https://ethereum.org/). The Contracts used right now are User for user creation and and Bitchan for the basic messaging board component.\n\n\n##### Frontend\n\nThe frontend is written in javascript/typescript and react.\n\n\n### Testing\n\n##### Local\n\n1. [follow the Quick install \u0026 Run](https://github.com/vanities/bitchan/blob/master/README.md#quick-install--run)\n2. Go to [http://127.0.0.1:3001](http://127.0.0.1:3001) in your browser\n3. Install [Metamask](https://metamask.io/download.html) for whatever browser you're using\n4. Open Metamask \u003cimg src=https://github.com/vanities/bitchan/blob/master/docs/images/metamask1.png height=400\u003e\n5. enter `0x2264248e750146323373851aec1f3f700f6d9ed0ebdc934137c9e007a047197f` into metamask as a private key, it has 1 ETH.\n6. Ensure you're connected to the local node \u003cimg src=https://github.com/vanities/bitchan/blob/master/docs/images/metamask2.png height=400\u003e\n\n\n##### Backend\n\nTesting the backend contracts can be done [here](https://github.com/vanities/bitchan/tree/master/contracts/test) and is written in solidity and typescript using [truffle](https://www.trufflesuite.com/docs/truffle/testing/testing-your-contracts).\n\n`$ make test_contracts`\n\n##### Frontend\n\nTesting the frontend can be done [here](https://github.com/vanities/bitchan/tree/master/client/tests) and is written in typescript.\n\n`$ make test_client`\n\n### Stop\n`$ make down`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanities%2Fbitchan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvanities%2Fbitchan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanities%2Fbitchan/lists"}