Kiwistand is a P2P node client for a web3-friendly Hacker News that nobody controls but everybody co-owns.
![Screenshot 2023-08-10 at 15 53 46](https://private-user-images.githubusercontent.com/2758453/259765073-d741ca3b-67a2-4356-822c-0c32df0dadc3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0MDUzMDYsIm5iZiI6MTcxOTQwNTAwNiwicGF0aCI6Ii8yNzU4NDUzLzI1OTc2NTA3My1kNzQxY2EzYi02N2EyLTQzNTYtODIyYy0wYzMyZGYwZGFkYzMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjZUMTIzMDA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MmFkZjBlNWM0ZmU0NjM3ZGQ0OWRjYzQ4OTk3MmIwYTM2YWRlNGQyZGFlYjlkMDJjOTM0YjdiNGNjYWNiM2U5MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.GlVx7QrfXu3G49C7y5e412bJgZ9VejU7WN0qVeulmoA)
Kiwi stores links and upvotes on the protocol level. Thanks to that, users can create their own UIs and permissionlessly create apps on top of it (see: awesome-kiwi for the list of apps and contributors).
You can learn the story behind the project in this 4 min video by Tim Daubenschutz.
- node >= 16
- RPC nodes on Ethereum Mainnet & Optimism
It's highly-likely that you'll need either a paid Alchemy account to make the node work because it is downloading a lot of block data. You might also try rate-limiting the speed at which the node tries to download event logs.
Please reach out to us if you don't have access to an Alchemy account and we'll figure something out!
git clone git@github.com:attestate/kiwistand.git
cp .env-copy .env
npm i
# and then for the frontend
cd src/web && npm i && cd ../..
npm run dev:anon
# might error when trying to create the data dir, that's a bug right now, just run it again
If your Ethereum RPC node is behind a reverse proxy with Authorization requirements, consider adding the @attestate/crawler RPC_API_KEY environment variable (details).
You can also watch the video explaining how to get started editing the Kiwi News frontend.
Once you're up and running, you might want to submit new links to the network. However, we encourage you to NOT do that on the main net.
Instead, if you must test submitting new links then run the node in bootstrap mode (no mainnet data) or in the "anon:local" mode that doesn't send data to the p2p network.
npm run dev:bootstrap
# or
npm run dev:anon:local
- Sybil Protection: NFT ownership is required for posting and voting, reducing spam and duplicate accounts.
- Public Goods Infrastructure: Data is shared across all nodes using a set reconciliation algorithm, preventing single-entity control.
- Complete Open Source Package: Kiwi News includes frontend, backend, and protocol code, all under GPL3.
- Streamlined User Interaction: Kiwi News supports key delegation, which allows automatic signing of user actions. This means users don't have to manually confirm each action via wallet connect or similar methods, making the user experience smoother.
Since https://news.kiwistand.com is now running live as a p2p node, you're invited to run your own nodes and frontends.
However, please consider joining a chat like the attestate dev chat to stay in touch for eventual upgrade announcements, as the protocol is far from being complete.
See changelog.md file.
GPL-3.0-only, see LICENSE file
Kiwi Devs Telegram chat: