Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/quackduck/duckcoin
WIP: A cryptocurrency made from scratch, with unique ease of mining. Duckcoin's code has a focus on readability.
https://github.com/quackduck/duckcoin
blockchain cryptocurrency mining pow
Last synced: 5 days ago
JSON representation
WIP: A cryptocurrency made from scratch, with unique ease of mining. Duckcoin's code has a focus on readability.
- Host: GitHub
- URL: https://github.com/quackduck/duckcoin
- Owner: quackduck
- License: mit
- Created: 2021-05-10T14:20:23.000Z (over 3 years ago)
- Default Branch: hard-fork-change-structures
- Last Pushed: 2022-10-31T22:16:04.000Z (about 2 years ago)
- Last Synced: 2024-06-20T15:54:22.067Z (5 months ago)
- Topics: blockchain, cryptocurrency, mining, pow
- Language: Go
- Homepage:
- Size: 190 KB
- Stars: 44
- Watchers: 5
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Duckcoin - Crypto mining for everyone
Duckcoin is a cryptocurrency that will have zero fees, be decentralized and easy to mine locally on your regular computer, no fancy setup needed. Duckcoin was initially made just to learn how cryptocurrencies work, but it's blossoming into a real currency. Remembering Duckcoin's origins, the code is written to be easy to understand. Feel free to make issues asking questions about the code!
**Duckcoin is still under unstable development: If your miner seems to be getting a lot of errors, check if there's been any commit with "HARD FORK" in the commit message**
## Status, Plans and Differences.
- [ ] Decentralized
- [x] Easy to mine
- [x] Zero fees
- [x] Emoji addresses: ๐ฆ๐ฉ๐ ๐๐คง๐๐ฆ๐ฅ๐๐ฌ๐ฝ๐ฐ๐นโฐ๐๐ฉด๐๐๐๐งDuckcoin is a cryptocurrency that uses PoW, a common consensus algorithm that is also used by Bitcoin, ETH Classic and Dogecoin, to give miners rewards. However, it is currently operating on a centralized server-client model, which will certainly get me canceled if I release this right now.
Duckcoin works differently from other cryptocurrencies. They need miners to have their own public IPs, or to port forward certain ports so that miners can contact each other in a peer-to-peer way. Because of how widespread Carrier Grade NAT is, it is usually rarely possible to host a node at home, without a custom rig.
As of now, Duckcoin has a central server that miners can send blocks to. Miners don't validate anything, a central server validates the chain. The miner gets a certain reward after the block is accepted. To make a transaction, you must mine your own block with that transaction.
This makes it possible to mine Duckcoin on a regular computer. However, this means Duckcoin is _centralized_, which is unacceptable for anything called a cryptocurrency (besides, I don't want to deal with people trying to attack the central server).
So, to decentralize Duckcoin, we'll have two kinds of miners: one for the people who do have custom rigs, and one for people mining at home. We'll call the first type "_Lnodes_" (Large Nodes) and the second "_Snodes_" (Small Nodes). Lnodes are like multiple instances of the current central server.
The current plan is to have Lnodes set up [direct connections](https://tailscale.com/blog/how-nat-traversal-works/) between Snodes, allowing Snodes to act as complete participants in the network. Potential problems with this could be that a malicious Lnode could connect an Snode to a fake Snode, but this _should_ be fine since running nodes requires compute power.
Another goal of Duckcoin is to have zero fees by essentially having the payer do the PoW for their own transaction as an Snode. The miner's reward is then what that Snode's PoW is worth.
[//]: # (Lnodes receive blocks from Snodes, validate them, and _chunk them together into a field of a larger block we'll call the "Lblock"_. This Lblock gets added to another chain, which will function how usual cryptocurrency blockchains do, with PoW for consensus and rewards (unlike Snodes, which don't use PoW for consensus), P2P networking, maybe Merkle trees, etc. Another goal of Duckcoin is to have zero fees. This is done by "giving" the miner the PoW the reward that the Snodes normally get. Snodes still mine their own transactions and the "fees" to the Lnode is the reward that the Snode's PoW is worth.)