-
Notifications
You must be signed in to change notification settings - Fork 85
A blockchain protocol that provides privacy and scalability gains by verifying that all tx are valid without needing to store the entire history of the chain.
A lightweight implementation of the MimbleWimble protocol.
Both are output-based and use a PoW consensus model. Check out Grin for Bitcoiners for more info.
- ☑ Contracts
- ☑ Pruning
- ☐ Identity, like bitauth
- ☑ Something something SNARK/STARK/NIZKPs
- ☑ Cross chain atomic swaps, ☑ multisig, ☑ time locks, ☑ lightning network,
- ☑ Payment channels
- ☑ hidden nodes / onion routing
- ☑ Scripting - clean & native w/ tiny limits
- ☑ Dandelion privacy mixed with tx cut through (already implemented)
HTTP GET /v1/chain on a public peer node or see the grin explorers and scanners in the Community Projects section.
Target mean block time is 1 block per 60 seconds. The size is limited by transaction "weight", though there is also a hard cap on the order of tens of MB.
Very well on the storage layer thanks to transaction cut-through! Slightly better than Bitcoin on transaction throughput but still not an order of magnitude better.
https://github.com/mimblewimble/grin/releases
Check out the Build Docs.
See this rolling list of community created wallets.
https://github.com/mimblewimble/docs/wiki/Monetary-Policy
https://github.com/mimblewimble/grin/wiki/fees-mining
No.
No.
No.
No.
- You can attach receipts or order IDs through the slate that comes with every tx
- Every tx is only known to the sender and the recipient and the network merely verifies that tx are valid. If you're part of a tx you can log that info and use it to prove that a tx is valid and thus definitely happened.
- A GPU with >3.7 GB of very fast DRAM is the best bet, like the 1080TI. But don't invest Grin-specific equipment yet! There's not even a final beta released, and much can still change.
- https://forum.grin.mw/t/best-gpu-for-mining-grin/1654/2
- https://github.com/mimblewimble/docs/wiki/how-to-mine-grin
- https://forum.grin.mw/t/what-to-mine-choosing-between-cuckatoo31-and-cuckaroo29/1732
You need to clone, build, and run grin-miner separately from your grin node in order to mine.
You need to run both the grin node and grin-miner. Alternatively, you can point your miner to someone else’s node (if they’ve made the stratum server publicly available), but this also means that they will receive the block rewards.
My miner is stuck. I'm getting "missing field job_id" or "Starting miner awaiting first graph time…" message.
This is a known issue that has been fixed. Please rebuild both grin node and grin-miner from master and try again.
At the moment, GrinGoldMiner is your best bet.
Yes, configure your grin-miner.toml
with multiple devices.
Yes. Grin-pool is currently in alpha, instructions for trying it here.
GrinGoldMiner has been confirmed to work with 8GB currently. The aim is to bring the minimum requirement down to 4GB prior to Mainnet launch.
GPU will beat CPU in general.
A single 42-cycle in a graph of at least 2^30 nodes, i.e. a cycle of length 42.
The network can operate at a fairly high difficulty in order for blocks to be found on average every minute. To allow miners to contribute intermediate work, mining pools accept solutions that hash at a much lower difficulty. This is called a share. On average, a certain number of shares will result in finding a block. So if the network difficulty is D
and the mining pool difficulty is d
with D > d
, on average D/d
shares will be required for the pool to find a block.
Yes, measured as the number of nodes of the graph you find that single 42-cycle in. The lowest number of nodes that is allowed is 2^30, which we call cuckoo30. Graphs with more nodes in them require more memory and effort to solve, which is why we scale the difficulty with the size. For cuckooN the scaling factor is given by (N-1)*2^(N-30). This means cuckoo30 solutions are scaled by 29, cuckoo31 by 60, cuckoo32 by 124 etc.
The minimum size is currently 2^30, or cuckoo30. Solutions in graphs with larger nodes than the minimum threshold are also accepted. In the future, this threshold might be increased via soft forks.
grin-miner tells me “Solution Accepted”, it’s listed as accepted in the grin node, but why have I still not received any block rewards?
The miner sends any valid cuckoo solution to the grin node. A share will be accepted even if it is of higher difficulty than the network difficulty. A share is not a block.
Mining pools will use the number of shares to estimate your graph rate and thus your payout.
That’s 1 Graph Per Second, i.e. trying one random graph in one second to see if it’s a valid solution.
On average you need to search 42 graphs to find a 42-cycle.
Also on average, you need to find diff/scale 42-cycles to solve a block, where
diff = current network difficulty, and
scale = (N-1) * 2^(N-30) for cuckooN cycles.
(e.g. 29 for cuckoo30, 60 for Cuckoo31, and 124 for Cuckoo32)
Finally, graphs per second is graphs per block divided by the blocktime in seconds.
Total Network GPS is then
gps = 42 * (diff/scale) / 60
As an example, let's assume:
- Everyone is mining cuckoo30;
- Current network difficulty is 241;
Then, the network GPS is 42 * 241/29 / 60 ~5.82.
If total network GPS is 5.82 in the above example, and I am currently mining at 0.582 GPS on my own, does that mean I can expect to win 10% of all blocks roughly?
Yes. You're then essentially contributing 10% of all the network mining power.
- Set
api_listen_interface = "0.0.0.0"
in yourgrin-wallet.toml
configuration file. - Ensure port 3415 is open on the device that is to receive grins.
Visit http://canyouseeme.org from your device and follow instructions.
Check that any firewalls set up on your device are letting through connections and that you have set up port forwarding on your router. Google "port forward" and the model and make of your router for further instructions. Some have also had success setting up mapping using the portmapper tool behind a router they don't know the admin password to.
After you’ve successfully mined your block, another 1000 blocks need to be found in order for your coinbase to mature. Prior to this occurring, the outputs cannot be spent.
These are transaction fees. You get paid for including a transaction into a block that you have successfully mined. If you run grin wallet outputs
you will see for which block that was, and can also check it on one of the block explorers.
https://github.com/mimblewimble/grin/wiki/Grin-and-MimbleWimble-vs-ZCash
See this conversation.
See the privacy primer
That's great!
- The wiki documentation can always use improvement. Anyone is free to just jump in and edit that directly.
- We also have more technical documentation that is not on the wiki. Here you can’t edit directly, but submit a pull request that is then peer reviewed before merged. A good place to start is to review the technical documentation table of contents and improve where you can.
- If you want to get your hands dirty, you’re also free to just submit a PR to any area of the project, the list of open issues tagged with "help wanted" is probably a good place to start. Also check that there are not any open pull requests that conflict to avoid duplication of effort.
- Look at the open pull requests.
- There is a bi-weekly dev meeting every other Tuesday at 15:00 UTC (on odd-numbered weeks) on the
/dev
channel on Gitter. Feel free to listen in. Notes from these meetings are checked into grin-pm. - @yeastplume is publishing a weekly progress update of his work in the forum, usually on Fridays.
Basics
- Getting Started
- User Documentation
- MimbleWimble
- FAQ
- Planned releases (Roadmap)
- Code of Conduct
Contributing
- Contributing Guide
- Code Structure
- Code coverage and metrics
- Code Reviews and Audits
- Adding repos to /mimblewimble
Development
Mining
Infrastructure
Exchange integrations
R&D
Grin Community
Grin Governance
Risk Management
Grin Internals
- Block Header Data Structure
- Detailed validation logic
- P2P Protocol
Misc