Bitcoin Forum
October 25, 2026, 06:20:05 PM *
News: Latest Bitcoin Core release: 31.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Queen Open-Source Electronic Cash System  (Read 208 times)
slw2qdc6xqca (OP)
Newbie
*
Offline

Activity: 29
Merit: 0


View Profile
August 29, 2026, 09:29:47 PM
Last edit: September 02, 2026, 09:58:01 AM by Mitchell
 #1

After spending some time reworking the design and figuring out the direction of the project, I was also offline for about two weeks
I decided to continue development with a new project called Queen
Ferraro, Bitroid, and BitSlowly were previous experimental projects. Queen is the project I’m continuing to develop
Queen is an open-source, mineable peer-to-peer digital currency currently under development
I’ll post updates and technical details here as development continues.



I’ve published the open-source source code for Queen, an experimental peer-to-peer electronic cash system.
It is still under development, so feedback, testing, and bug reports are welcome.

Github Source Code:
https://github.com/loidprotagonist/Queen

Whitepaper:
https://drive.google.com/file/d/1nfD79S52X1nFtw4q8Y4oMiYYc8eOF912/view?usp=drivesdk%C2%BB
slw2qdc6xqca (OP)
Newbie
*
Offline

Activity: 29
Merit: 0


View Profile
August 31, 2026, 04:04:06 PM
Last edit: September 01, 2026, 12:01:42 PM by slw2qdc6xqca
 #2

A community tester reported an "invalid genesis reward" error when running Queen on Windows.
It turned out I had accidentally uploaded the wrong "core.py" file. The correct file has now been uploaded, and a fresh "git clone" runs normally.

Thanks to the tester for catching it and testing Queen on another platform.
pooya87
Legendary
*
Offline

Activity: 4256
Merit: 12686



View Profile
September 02, 2026, 04:10:29 AM
Merited by Charles-Tim (2), hugeblack (1)
 #3

What exactly are you trying to do here? Is this some school project or personal experiment to learn how to deploy a cryptocurrency like Bitcoin? I'm assuming it is because with 8 python files, you can't call it a "Electronic Cash System". In that case python makes sense for experimenting and learning, I don't think it is the best choice for a serious project that requires both security and efficiency.

I skimmed through the project and here are some thoughts:
1. Why use 2 hard-coded blocks (#0 and #1) instead of just one?
You only need 1 genesis block and if you want to include Satoshi's message, then include it in block #0 already. You can include it in the inputs and your new message in the outputs (it would be a metaphor of we having gone into this world with Satoshi's message and now we are coming out with this new one)

2. Why do your transactions have a message field?
You are calling it an "Electronic Cash System" and yet the transactions include a message field by default. A currency doesn't need messaging. The 280 byte limit is good but it still is turning it into a message board and 280 byte it way too big.
In Bitcoin we do it as part of the output scripts instead of a separate field called message (using OP_RETURN).

3. Why do your transactions have a version?
Bitcoin doesn't even use the version field (used in only one place AFAICT). Your 2 hard-coded blocks are using version 1 and in your verification process you are rejecting anything that is not version 2.
Here is an important lesson to learn when developing such a complex system that you want to run for a long time like Bitcoin has: you want to think about scaling the project and future/forward compatibility.
When you reject transactions with an equality check like this you are making sure that any future change requires a hard fork. Even if you want to enforce something like that, it should be future compatible with a smaller than comparison not equality (ie. if version < MinVersion then Reject)

4. Why is your validate_tx method assumes it is receiving a JSON?
Normally in a cryptocurrency you are dealing with raw bytes. You store them as raw bytes and transmit them over the network as raw bytes. Then you can interpret them (deserialize) however you want and validate but it has to be raw bytes. Check out some bitcoin source code to see how it's done.
Your approach creates restrictions. For example it assumes the outputs must contain an "address" field. But we are dealing with smart contracts (script) that needs to be evaluated and executed not addresses. An address is just what is shown to the (human) user in the user interface, not something to be used under the hood by the machine.

In any case, you've already gotten the general idea needed for a cryptocurrency but you have trouble in implementing the idea. I suggest you start reading code. Bitcoin core is written mostly in C++ but if you understand programming with pyton, you should be able to read the code. It can give you a much better idea about how things should be done correctly. https://github.com/bitcoin/bitcoin

▄▄████████████████████▄▄
▄███████▀▀██████▀▀███████▄
█████▀██████████████▀█████
████████▄▄██████▄▄████▀███

██████████████████████████
██▄▄██████████████▄▄██████
██▀▀██████████████████▄▄██
██████▀▀██████████████▀▀██
██████████████████████████
███▄████▀▀██████▀▀████████
█████▄██████████████▄█████
▀███████▄▄██████▄▄███████▀
▀▀████████████████████▀▀
 
 DΞX.fo 
▄▄██████
█████████
██████████
██████████
██████████
█████████
▀▀██████

▄███████
▄██████████
████████████
█████████████
█████████████
|
▄▄█
▄████▀
▄███▀█▄
▄██▀█▄██
█████▀▀█
████████
████████
▀██▄████
▄████▄▄█
▄█████▀███
▄█████▀████▀
█████▀███████
▀██▀█████████
|..BTC......XMR...
..USDT.....LTC...
....Fees  0.8%.....
The Cryptovator
Legendary
*
Offline

Activity: 3052
Merit: 2631


Protect your privacy 🔏 it's very important


View Profile WWW
September 02, 2026, 09:57:42 AM
 #4

I decided to continue development with a new project called Queen
Ferraro, Bitroid, and BitSlowly were previous experimental projects. Queen is the project I’m continuing to develop
Queen is an open-source, mineable peer-to-peer digital currency currently under development
I’ll post updates and technical details here as development continues.
Isn’t that the goal of Bitcoin, and still Bitcoin exists in the crypto ecosystem? Really, do we need a lot of projects that don't bring any value? Like Bitcoin exists, Ethereum added extra value to the crypto ecosystem. Those who welcomed Ethereum made a lot of money from the market.

Your development should add some extra value on the crypto market. Creating a token project or native chain project only for trading doesn’t make sense. Develop something that will give us some extra benefits compared to existing coins; it doesn’t necessarily often create a token or coin for that.

slw2qdc6xqca (OP)
Newbie
*
Offline

Activity: 29
Merit: 0


View Profile
September 03, 2026, 06:57:13 PM
Last edit: September 04, 2026, 05:24:04 PM by Mitchell
 #5

What exactly are you trying to do here? Is this some school project or personal experiment to learn how to deploy a cryptocurrency like Bitcoin? I'm assuming it is because with 8 python files, you can't call it a "Electronic Cash System". In that case python makes sense for experimenting and learning, I don't think it is the best choice for a serious project that requires both security and efficiency.

I skimmed through the project and here are some thoughts:
1. Why use 2 hard-coded blocks (#0 and #1) instead of just one?
You only need 1 genesis block and if you want to include Satoshi's message, then include it in block #0 already. You can include it in the inputs and your new message in the outputs (it would be a metaphor of we having gone into this world with Satoshi's message and now we are coming out with this new one)

2. Why do your transactions have a message field?
You are calling it an "Electronic Cash System" and yet the transactions include a message field by default. A currency doesn't need messaging. The 280 byte limit is good but it still is turning it into a message board and 280 byte it way too big.
In Bitcoin we do it as part of the output scripts instead of a separate field called message (using OP_RETURN).

3. Why do your transactions have a version?
Bitcoin doesn't even use the version field (used in only one place AFAICT). Your 2 hard-coded blocks are using version 1 and in your verification process you are rejecting anything that is not version 2.
Here is an important lesson to learn when developing such a complex system that you want to run for a long time like Bitcoin has: you want to think about scaling the project and future/forward compatibility.
When you reject transactions with an equality check like this you are making sure that any future change requires a hard fork. Even if you want to enforce something like that, it should be future compatible with a smaller than comparison not equality (ie. if version < MinVersion then Reject)

4. Why is your validate_tx method assumes it is receiving a JSON?
Normally in a cryptocurrency you are dealing with raw bytes. You store them as raw bytes and transmit them over the network as raw bytes. Then you can interpret them (deserialize) however you want and validate but it has to be raw bytes. Check out some bitcoin source code to see how it's done.
Your approach creates restrictions. For example it assumes the outputs must contain an "address" field. But we are dealing with smart contracts (script) that needs to be evaluated and executed not addresses. An address is just what is shown to the (human) user in the user interface, not something to be used under the hood by the machine.

In any case, you've already gotten the general idea needed for a cryptocurrency but you have trouble in implementing the idea. I suggest you start reading code. Bitcoin core is written mostly in C++ but if you understand programming with pyton, you should be able to read the code. It can give you a much better idea about how things should be done correctly. https://github.com/bitcoin/bitcoin

Thanks for taking the time to review Queen and for the detailed technical feedback.

Regarding the two initial blocks, block #1 is intentional. I use it as an initial milestone/monument block containing a message, while the mining reward structure starts afterward.

The transaction "message" field is optional. I added it so a transaction can carry a small message without requiring a separate file. I understand the trade-offs of putting data on-chain.

The transaction version is also intentional. Queen currently uses different versions to distinguish normal transactions from block reward transactions. I’ll keep the forward-compatibility concern in mind for future versions.

As for JSON, that was a deliberate practical choice for the experimental stage. I prioritized getting the node, transactions, mining, and verification working so I could test the system rather than spending most of the time implementing a binary format.

I appreciate the feedback. I’ll review these areas further as Queen develops.



I decided to continue development with a new project called Queen
Ferraro, Bitroid, and BitSlowly were previous experimental projects. Queen is the project I’m continuing to develop
Queen is an open-source, mineable peer-to-peer digital currency currently under development
I’ll post updates and technical details here as development continues.
Isn’t that the goal of Bitcoin, and still Bitcoin exists in the crypto ecosystem? Really, do we need a lot of projects that don't bring any value? Like Bitcoin exists, Ethereum added extra value to the crypto ecosystem. Those who welcomed Ethereum made a lot of money from the market.

Your development should add some extra value on the crypto market. Creating a token project or native chain project only for trading doesn’t make sense. Develop something that will give us some extra benefits compared to existing coins; it doesn’t necessarily often create a token or coin for that.

Thanks for taking the time to look at Queen and share your thoughts.

Queen is currently an independent experimental project. I’m not trying to claim that it will replace Bitcoin or that it has some guaranteed market value.

The main goal for me is to build, test, and learn from an open-source P2P electronic cash system. Whether Queen provides useful value beyond existing systems is something I think should be determined by actual use and development, rather than something I should claim in advance.

I appreciate the point about having a clear purpose and value beyond simply creating another coin.
yoshikiazuma
Newbie
*
Offline

Activity: 153
Merit: 0


View Profile WWW
September 12, 2026, 11:45:17 AM
 #6

ive ran this miner and earnt some blocks but it did time to time get stuck and stop mining a few days i go

is this a mainnet network, or would you call this one for a testnet, i haven't looked at the software a while so i can't remember or i don't know, testnet or mainnet could you tell me which network it is, because i know you said its experimental and probably doing tests

i hope the tests and experiments go well
slw2qdc6xqca (OP)
Newbie
*
Offline

Activity: 29
Merit: 0


View Profile
September 12, 2026, 11:53:22 AM
 #7

ive ran this miner and earnt some blocks but it did time to time get stuck and stop mining a few days i go

is this a mainnet network, or would you call this one for a testnet, i haven't looked at the software a while so i can't remember or i don't know, testnet or mainnet could you tell me which network it is, because i know you said its experimental and probably doing tests

i hope the tests and experiments go well

Thanks for testing Queen.

It is still an experimental network, not production-ready. I’m preparing a new Beta Test version with updates and fixes.

About the miner getting stuck, I’ll look into it. If it happens again, please let me know what was shown on the screen before it stopped.

Thanks for testing and for the feedback.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!