41 Commits

Author SHA1 Message Date
59bbeff1c1 Improve the block transfer logic
- Fix a bug where the blockchain could not be synced completely when
  block transfers happened in parallel
- Sum up multiple received blocks in the log output
2026-03-22 20:41:53 +01:00
0aa58b137b Fix a bug that prevented the blockchain to sync
Blocks with reveal transactions that were loaded from disk could not be
distributed to other nodes before. This prevented new nodes with an old
blockchain state from synchronizing the blockchain.

This bug has now been fixed.
2026-03-22 17:47:42 +01:00
1d3cf3e242 Log errors that occur when sending a udp packet 2026-03-22 16:12:39 +01:00
de62f95f45 Fix a race condition 2026-01-05 12:02:27 +01:00
a3b92fcc72 Document a required dependency 2025-12-14 17:46:31 +01:00
2e163f9786 Add a license 2025-12-14 00:23:06 +01:00
cbdbb79e4e Include usage information 2025-12-13 23:56:16 +01:00
872e44e317 Implement gambling 2025-12-13 23:41:07 +01:00
fd6b5019ac Describe the advanced blockchain that supports gambling 2025-07-04 21:21:24 +02:00
38c204cab2 Improve the wallet output formatting 2024-03-25 22:15:10 +01:00
3d239a7526 Fix a bug that caused the node to crash 2024-03-25 21:53:42 +01:00
608a57c71d Make the wallet backwards-compatible 2024-03-25 21:28:04 +01:00
77e85886ce Implement the wallet software 2024-03-25 20:59:32 +01:00
7037de6090 Add a missing byteorder parameter
(It caused an exception on Python 3.10)
2024-03-24 15:05:29 +01:00
825b07bc11 Implement the mining software 2024-03-24 13:09:29 +01:00
2f3216a0c4 Implement mining task request/response 2024-03-23 18:57:57 +01:00
56c0598d6b Add a script to show all block messages 2024-03-20 23:00:11 +01:00
54c81810ee Allow clients to transmit payments 2024-03-20 22:59:44 +01:00
c6394d2ca1 Implement exchange of open transactions 2024-03-20 22:23:26 +01:00
0218e34787 Do not rewrite the blockchain file at startup 2024-03-17 18:56:56 +01:00
1d627a83cb Fix a bug during initial blockchain check
An invalid block in the locally stored blockchain caused
the node to crash.
2024-03-17 18:49:22 +01:00
833a300611 Fix a bug during transaction validation
Missing method call - caused an exception
2024-03-17 18:35:13 +01:00
05881a9450 Persist blocks locally in a file 2024-03-17 17:43:59 +01:00
e1fe8b0958 Reorder field in the block
Miners should choose a transaction from the network based on its reward,
not as part of the mining variability.
That's why it's a bad idea to place the transaction as last block element.

Reorder the fields to make less room for harmful mining optimization.
2024-03-17 09:54:00 +01:00
f41710c3dd Implement block transfer logic 2024-03-16 21:56:12 +01:00
44598fc030 Implement blockchain logic 2024-03-16 17:10:03 +01:00
9204f87c56 Plan the carrotcoin launch 2024-03-16 15:56:52 +01:00
53e659fc9d Fill computed fields during validation 2024-03-16 15:20:46 +01:00
c48d2d8e0d method get_block_raw 2024-03-04 18:42:17 +01:00
f57eab2e3e Create a first draft of the blockchain class 2024-02-25 16:29:05 +01:00
e041a8cb04 Describe mining messages 2024-02-25 15:26:27 +01:00
ea2d9577ae Add messages to transfer open transactions 2024-02-25 15:12:46 +01:00
ebf079ff4a Ignore invalid IPv6 addresses 2024-02-25 14:56:03 +01:00
d804c05e75 Describe block transfer and list hash messages 2024-02-25 14:32:57 +01:00
c4942dd716 Send the second last block difficulty sum
This counters a possible attack where a miner could try to replace an
already mined block with a different one that appears to be mined just
one second before.
2024-02-25 00:55:47 +01:00
bd51b5efff Fix a bug that caused a busy loop without peers 2024-02-11 22:31:43 +01:00
bc45c9d5e6 Implement the partner introduction logic 2024-02-11 22:14:19 +01:00
a5e44de6fc Implement sending of heartbeats 2024-02-11 18:27:32 +01:00
b67e01f6dc Define a first peer-to-peer network protocol version 2024-02-11 17:22:56 +01:00
c1af21b442 Describe more criteria 2024-02-11 15:08:34 +01:00
89983c8acb Define the blockchain 2024-02-10 20:32:46 +01:00