Search content
Sort by

Showing 20 of 46 results by askii
Post
Topic
Board Project Development
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 29/06/2025, 09:59:18 UTC
Hello everybody, figured I'd make a little post so as to not leave everybody in the dark. I've been really busy recently, but I'm still working on the game as much as I can!
(to be clear, nothing in this post is live on proofofwork.gg yet, as everything will come in one major content push):



In addition to lots of bug fixing, I've condensed progress into the following main things:


Address Book and Transaction Fees


The game now has an address book feature that allows you to "generate" and use multiple different addresses, just like the original client did. I was forced to rewrite a little code to make this work, so internally, the foundations for scripting and detailed UTXO simulation have actually been set  Wink

Additionally, block rewards now include transaction fees. Bitcoin's historical fee rates are really interesting to look at, and these trends will definitely be reflected in game. Transaction fees in general aren't really a key focus for me, but I think they'll add some interesting flavour to the gameplay, as you may want to optimise when you broadcast your transactions and the best fee rate for the given transaction (remember to consolidate your outputs, in real life too!  Cheesy).



Mining pools
With that done, I'm currently working on mining pools - I found a really neat paper discussing all the popular reward mechanisms that pools use and have used in the past. A big gameplay/story moment is the player's exposure to the first mining pool(s), so I really want to try and get the details right. Expect the ability to pool hop early-game! (until of course, the NPC of the pool you're abusing switches the reward system  Grin)



Tutorial


I've received a lot of feedback regarding this - so the next time you load the game you'll be greeted with a little dialogue, that, if accepted, will guide you through mining your first block, and acquiring your first device. Hopefully this'll make onboarding much smoother!



Progression, Story, and In-Game Forum
I'm using the website http://historyofbitcoin.org for a rough timeline of key story events (like the aforementioned first mining pool launch) as well as the in game market cycles, and everything will hopefully be layered nicely in with the RingNET forum. Writing fake forum posts will take up a lot of time but hopefully I'll be able to get some help from friends and such  Smiley. This (alongside mining pools) is really the key thing I want done before I make this version live.

Also, I'll try my best to start writing a sort of overarching narrative that'll see the player getting lore tidbits from the forum, and little side quests and puzzles as I have discussed, though this is definitely on the lower end of the priorities list for now. Same goes for the BIPs and in game "software updates".



Soundtrack and SFX
This is a very long term thing, but a soundtrack is potentially in the works for the game! Once some tracks are done, I'll create a little "Windows Media Player" app where you can turn the tracks on and off, and shuffle through them. The sound effects right now are also rather crude and limited, so expect improvements to this down the line.



Next Steps
For now, I'll continue working towards delivering on all of the above (and more). Once this content release is ready, if there's enough interest in it, I'll work on creating a trailer and a Steam store page, to hopefully try and get more eyes on this project, Bitcoin education, and just Bitcoin in general.

While this started as just a passion project, I’d love to eventually turn it into something sustainable...  I'm thinking after the majority of the game is done (and there is enough content to warrant a price tag), I'll launch it as an "early access" game for maybe around 6-7 USD? (and, naturally, priced fairly according to purchasing power in different regions). For the record, proofofwork.gg isn't going anywhere, and a version of the game will always (to the best of my ability) be freely accessible there, but at some point down the line my content updates will inevitably be more directed to the monetised versions, and the website will stay as more of a "demo" I guess.

Also - a big thank you to whoever sent the ~6,000 sats my way. I didn’t get a message with it, but it really means a lot!  Cheesy
Post
Topic
Board Project Development
Re: ⚡Satoshi Strike - An online tank battle game where you can earn sats ⚡
by
askii
on 22/06/2025, 14:02:55 UTC
I think OP probably has good intentions with their project, but maybe hasn't presented or framed it in the best way (gambling issue etc).

At the end of the day, I think trust is the biggest issue, and a game like this is likely (regrettably) better suited to a blockchain with more advanced smart contracting abilities, where management of the pots can be fully trustless and fair.

With regards to the game itself - there is fairly significant input lag that I'm confident is not just me. I'm guessing client inputs are sent to the server and the game is only updated to reflect the server state? You should implement client side prediction and interpolate the client state with the server state, so the player can get immediate feedback for their actions. For such a simple game, it shouldn't be too much of a headache, and it'll make the gameplay feel a lot more smooth  Smiley
Post
Topic
Board Project Development
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 15/06/2025, 12:56:38 UTC
splitmix32 is just a fast and simple open source 32 bit PRNG. I'm not overly familiar with its inner workings - I do know that 0x9e3779b9 is derived from the golden ratio, e.g., you can derive:

0x9e3779b9 = 2654435769
Φ - 1 ≈ 2654435769 / 2^32

From my understanding, I think the other two constants were chosen empirically to give desirable random properties to the function and don't represent anything in particular.

Still working on the big update - can't really promise a release date for it yet, but hopefully it'll be worth the wait!
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: NucleKey – DNA as the Ultimate Cold Storage for Bitcoin Keys
by
askii
on 09/06/2025, 07:31:03 UTC
⭐ Merited by ABCbits (1)
Storage Material:
The DNA itself can be stored in a variety of encapsulated forms:

- Silica beads (like those used in academic long-term preservation)
- Glass ampoules, vacuum-sealed
- Or even polymer-encapsulated capsules

These are chemically stable, compact, and proven to withstand extreme conditions (heat, UV, oxidation). The goal is to create a medium that's not just durable, but also independent of contemporary electronics.

But how is this better than a stainless steel or titanium plate? Plates already accomplish what you're attempting to solve and they're significantly simpler and more reliable (especially titanium).
A smaller storage vessel is not necessarily better... The smaller it is, the more fragile it is, and the easier it is to lose.

I think you'll have a hard time convincing people their keys are safer in DNA glass ampoules than they are on a solid piece of metal  Cheesy
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 09/06/2025, 00:55:47 UTC
⭐ Merited by stwenhao (1)
Code:
gen_hash256(7,1,0) "0000000ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(6,1,0) "0000008ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(5,1,0) "00000f8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(4,1,0) "0000cf8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(3,1,0) "0007cf8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(2,1,0) "00a7cf8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(1,1,0) "0da7cf8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(0,1,0) "6da7cf8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
Oh, so that's how hashes are made!
Code:
gen_hash256(0,1,0x00000000) "6da7cf8ae82798beaba5537ef3b0dd551fef80af1e0239f061f33248589d801c"
gen_hash256(0,1,0xffffffff) "ef4ac5a4b4aed0339758c8af0811423763b64e534c85cc2d9c6ef3fbab87dcff"
There are only 2^32 possible outcomes, and everything is simply masked, to get the final value. Nice!

Yep, that function is the core of how "faking" the proof of work hashes is done. Internally, the parameters are essentially bias (the number of leading zeroes), odds, seed. The function will then sample a hash using the seed from a distribution where the expected value of bias is 1/odds. It sounds a little complicated, but you can get a visual idea by using the sample_distribution(bias, odds, n_samples) function that's already in there. For example:



You can see that the number of hashes generated with 10 leading zeroes was 1074/100000, which is roughly 1% (equal to 1/odds) and it has a somewhat realistic/nice overall distribution.  That is what is actually going on when you buy devices and increase your hashrate, the game just tweaks your bias/odds values in such a way that your hashes line up with the hashes you should be generating if you actually had that hashrate.

By the way, that also means, that after mining around 64k blocks, there would be block hash collisions! I wonder, if some things would crash because of that, or not. For example: what if there would be two or more block hashes, generated out of the same seeds? How getting block by hash would behave?
I haven't tested that, it would take too long  Grin. However, finding a block by it's hash is done by searching downwards from the set of chaintips, meaning if two blocks have the same hash, it'll retrieve the one most recently added to the chain. Theoretically nothing else should actually break since blocks are usually identified by their actual BlockNode object in the JS and not their hash, but I'll have to test it at some point.

Edit:
Code:
for(var i=0;i<10000;++i) cb_P2PK("1teDcUjNzJdjiBesXDfsSUeeQUQYLQdQ5M")
Whoops! 500k coins generated just like that? Well, it seems the supply is no longer limited to 50k coins, if such things are possible.

After Value Overflow Incident, more checks were put in place. In general, no transaction should be able to send more coins than MAX_MONEY (which is 21 million coins in BTC, but could be 50k coins in SAT). Also, making a single output like that should be disallowed, as well as sending more coins than that in a single block. But, as you can easily see, the source of this bug leads to the simple fact, that coinbase amount is never checked anywhere, so it is trivially hackable. I wonder, if it should be that easy, it is single player by the way, so maybe it should be allowed? I don't know.
Indeed, since the game never allows for more than one coinbase transaction to exist in a block, I didn't place a check to explicitly prevent it. I think it's mostly fine, games like Cookie Clicker are also trivially hackable like this. Cookie Clicker actually has messages that you will see if you open the console, such as the following:

Code:
[=== About to cheat in some cookies or just checking for bugs? ===]

or

[=== Hey, Orteil here. Cheated cookies taste awful... or do they? ===]

Maybe I'll just add something like that as a light hearted deterrent  Cheesy
Post
Topic
Board Project Development
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 03/06/2025, 01:00:57 UTC
Finally got all coins in the game. The limit is 49999.99994500 SAT. But now I wonder, why the Genesis Block didn't take 50 coins as unspendable forever?
Ah, the genesis coins are unspendable, there was just an off by one error in calculating the block subsidies, e.g. a new coinbase would receive subsidy at height - 1 which caused an extra 50 coins to be created in one of the halvings (I'll add this fix as part of the update later)

I guess I should experiment a little bit with the format of transactions and blocks, to reach some limits, like uint256 overflow. But anyway, I didn't expect to reach 2^96 chainwork. In general, when there will be 2^128 chainwork at any point in time, then it would mean, that the network produced enough power for a single SHA-256 collision, and then hash function should be upgraded.
I think in an accelerated mini simulation like this, that amount of cumulative chainwork is pretty reasonable. I expect that by its last halving, Bitcoin will probably have an even higher chainwork, so the simulation is probably even a little conservative  Grin
Post
Topic
Board Project Development
Re: Introducing ShadowPulse - an alternative to merit
by
askii
on 02/06/2025, 07:17:43 UTC
That's a great question - I didn't design this as an alternative to the merit system,
Funny considering the name of the topic  Cheesy
Jokes aside though, it doesn't have to be an alternative or replacement, I think it's valuable regardless to open the door for more transparency and inclusivity...

But I do wonder what made you think that there was a need for an alternative to the merit system? Are there any problems it is addressing and what are the solutions that this tool brings?

The distributions of smerit might be too "controlled". I could perhaps agree with that. But would that necessarily mean that merited topics would be differently ranked with this new system? After all, a good topic is a good topic. The better a topic the more merits. Would a different ranking system look much different, aside from a few topics that have gained a disproportionate amount of merits due to being buddy buddy with higher-ups?

What about a system that ranks topics/posts on the amount of people from which the merits were received instead of a new ranking foundation, or the amount of merits received?
I think your idea just circles back to being a one-member one-vote system, except there is disproportionality, some people have plenty of votes and some have very few. I like the idea that this could be a good complementary system alongside merit, making reputation more democratic and giving broader insight from the community (as long as there is some sort of spam control, which I assume Vod has covered when he says it is cheat resistant...), with merit being like a sort of weighted trust from more experienced users.
Post
Topic
Board Project Development
Merits 3 from 3 users
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 02/06/2025, 04:39:45 UTC
⭐ Merited by garlonicon (1) ,stwenhao (1) ,vjudeu (1)
Also I wonder: is there any place, where people can read the full source code, or submit their pull requests? And which license you picked for that? MIT or something else? Or maybe it is just some hosting, with a bunch of JavaScript files, and you don't use any version control system like Git?
As much as I love open source software (and I really appreciate your enthusiasm Grin), I am interested in monetising this game (like on Steam, or through purchase on my website) down the line and so I will keep the code closed source.
That said, you’re totally welcome to peek under the hood, prod through it, read what is there and experiment however you'd like, however, I do respectfully ask that nobody copies, distributes or modifies it.

If I ever decide to open up parts of the project in the future, I’ll be sure to announce it properly.
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 02/06/2025, 01:43:32 UTC
⭐ Merited by stwenhao (1)
My plan is to see, if the official network can halt. I also wonder, if your chain is compatible with BIP-42: https://github.com/bitcoin/bips/blob/master/bip-0042.mediawiki

Because in the original code, after 64 halvings, the network started again with 50 coins. It was fixed by BIP-42, and I wonder, how your network will behave after 64th halving, and even if it can reach it without halting.
BIP-42 always makes me laugh every time I read it  Cheesy
But yeah it won't restart or overflow or do anything funky like that, the code for halvings is pretty simple:

Code:
let halvings = Math.floor(tip.height / chain_params.halving_interval);
return Math.floor(chain_params.subsidy_base / Math.pow(2,  halvings));
Javascript handles this nicely and block rewards will stay at zero after the last halving. You can verify for yourself by trying it in a JS console:

Code:
let halvings = Math.floor(100000000000000000000000000000000000 / 500);
console.log(Math.floor(5000000000 / Math.pow(2,  halvings)));


Also, I think some kind of "save" button will be needed, sooner or later, because then, it would be easier to restore the state of the network. Another feature I think about is "pruning". Because currently, everything lives in a memory. And if I could save some blocks on disk, and detach it from RAM, then it could be possible to test thousands of blocks, without killing my browser. Or even: pruning alone, without saving things, is also an option, to test some edge cases, like "no new nodes can join, because nobody has the full history anymore, and everyone switched to pruning".

And some minor UI things: when the price per coin is around 2.7 million dollars, it is no longer fully visible in charts. Also, charts seems to be in the future, because I have transactions from Jan 5, while I can see Jan 7 on the exchange.
I'll be releasing a major update sometime soon with more content, alongside that will be saving and other fixes.


​Edit: Custom secrets unlocked:
Code:
await encrypt_aes("<comment>stwenhao: Now I can make my own secrets!</comment>",await sha256('stwenhao'))
Array(75) [ 70, 226, 192, 193, 39, 154, 126, 71, 112, 129, ... ]
SECRETS.push([70,226,192,193,39,154,126,71,112,129,180,132,226,181,21,137,229,145,196,116,207,60,99,201,27,15,156,229,195,221,255,63,152,11,214,145,7,230,61,174,176,26,247,180,212,249,188,143,62,154,81,6,149,67,20,3,206,65,53,12,4,33,55,22,101,172,225,215,174,117,33,23,243,215,97])
And now, I can see this:
Code:
user@st> stwenhao
stwenhao: Now I can make my own secrets!
Which means, that users can also use "encrypt_aes" and "decrypt_aes" for encrypting and decrypting messages. And I guess, as long as everything is single player, you can just use things like that for any kind of encryption, including for example transaction signatures. Also, I guess if you will implement forum and private messages, then such things can be useful, to hide some things from the player, until they will appear in the story.
Nice! Yeah, it could be good for cheat prevention, my only concern really is overcomplicating my codebase and making it too messy for myself with a bunch of AES blobs and hidden keys. I think you're the only person that is exploring the game to this extent anyway  Grin

I'll give it some thought, but it's probably a future problem.
Post
Topic
Board Project Development
Re: Introducing ShadowPulse - an alternative to merit
by
askii
on 01/06/2025, 19:14:07 UTC
I won't be submitting it to the Chrome store until after Beta.  I also have plans to add it to github but I it's too poorly coded right now.   Plus I don't want to share my alexa replacement with the web until I'm almost ready - you know what competition is like!
Yeah fair enough  Cheesy

Right now I'm verifying everything is secure for review (no dbase credentials or other in comments) since you are able to view the JS code easily yourself.   I'll PM you instructions when it is ready for beta testing (this week) if you'd like.
Sounds good, I'll have a look once it's ready.

You mentioned sending anonymised traffic to ninjastic, so will board/topic/post reputation scores be visible on his site without needing the extension? Would probably be pretty helpful to mark clearly scam/unhelpful posts that the moderators don't want to remove (for whatever reason). I won't lie, it's pretty silly to me that a place like this doesn't natively have "deMerits" or some sort of downvote feature, so this is pretty cool  Roll Eyes
Post
Topic
Board Project Development
Re: Introducing ShadowPulse - an alternative to merit
by
askii
on 01/06/2025, 09:04:16 UTC
Could you provide instructions (or just a link) for where to find it and how to add it? I can't seem to find it on the chrome extension store.

Would also be good if there's a GitHub where the code can be reviewed and downloaded/added independently (if that's possible).
Post
Topic
Board Project Development
Re: New Project: Offline Bitcoin Public Key Generator
by
askii
on 01/06/2025, 03:29:16 UTC
But there are dozens of these tools that already exist, even ignoring the obvious (Bitcoin Core, Electrum, etc). Generating keys is offline and protocol independent anyway...
Perhaps you could clarify what you mean (are you suggesting making a new wallet software, and not just an HD key generator?), or do a bit more research into this topic  Tongue
Post
Topic
Board Development & Technical Discussion
Re: Tail emission ideas that retain the 21 million limit
by
askii
on 27/05/2025, 01:21:27 UTC
The first proposal would require some pretty invasive changes to consensus (hard fork), and I'm not sure that the advantages would outweigh the disadvantages. But either way - when block subsidy goes to zero, wouldn't miners be incentivised to fill their blocks? If we assume full or mostly full blocks and a minimum fee rate (e.g. 1 sat/vB), there will still be a baseline predictable block reward.
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 26/05/2025, 10:46:48 UTC
⭐ Merited by stwenhao (1)
New record achieved: 5321 blocks. But then, the network seems to be stuck for some reason (while my own minority chain is still going forward). I will leave it running, and see, if it will just move forward, or if it is really stuck, and will my fork produce more blocks (even if chainwork will be lower).
Current chainwork:
Code:
user@st> block 0000000000000000000036ea7e48a6eb87d12924fac5f89ae42ce5dc0fdecb42
{
  "version": 1,
  "hash": "0000000000000000000036ea7e48a6eb87d12924fac5f89ae42ce5dc0fdecb42",
  "height": 5321,
  "confirmations": 1,
  "time": 1231073167,
  "prev_hash": "000000000000000000000c830d7992039735cc3dacceb776926e3a97978f409a",
  "chain_work": "0000000000000000000000000000000000000000001da5d7d629256838dcd33d",
  "target": "17082528",
  "nonce": 519477280,
  "merkle_root": "d6b7df6161d7c7c54b1cd7f9a3dd465d9d1bcf9447b29b38e49aa7164df49a58"
}
Sick! But I guess I was wrong about fixing that integer precision bug... The problem is the integers involved in calculating the probability of network finding a block get so big that the fraction loses all precision always equals 0, so basically there is a 0% chance the network can solve a block and progress halts. I've switched it to now use the decimal.js library for high precision fractions, I'll just leave an instance running overnight to check if that fixes it.
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 26/05/2025, 01:02:03 UTC
⭐ Merited by stwenhao (1)
Now I can generate addresses, based on seeds. There are only 2^32 possible combinations, so now I know, how exchange addresses were generated:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I also reached vanity address generator. However, it requires real Proof of Work, so it takes some effort, to mine addresses with given prefixes:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I wonder, if future versions would allow importing 32-bit seeds, and hacking into different wallets.

By the way: in the past, some people lost real coins, by using weak seeds, so your code refers to things, which really happened.
Very amusing! Perhaps I should increase the range of seeds to allow for some more creativity. But yes, I do indeed plan on adding functionality to create wallets with mnemonic seed phrases (in-game BIP39 update), brainwallets, stealing funds, all of the above. I really want to emphasise private key storage security as well, e.g., if you click on a strange link, you might get a virus which will steal your keys from storage or memory, so even in the game it's safer to write down your seed phrases in real life, or buy a hardware wallet in the game.


Edit: I think I have a name for OP_CHECKSIG, if you will ever want to implement Script: OP_CHECKSEED. It should verify, that the transaction creator knows the seed, without revealing it explicitly, like I did. Now, I will try to explore, how seeds are picked, so maybe you could use them as public keys, and pick something else as a private key. I also wonder, how signatures should look like.
My initial idea, which I temporarily discarded for simplicity, was to have gen_privkey(seed) -> gen_pubkey(privkey), whenever generated, the game will store these keypairs internally. For signatures, I can just write a gen_sig(privkey, data), where in the game's db, each signature is referenced as "belonging" to a private key/data pair.

Since the player is the only entity we need to worry about being able to sign and spend transactions, OP_CHECKSIG could be as simple as "what private key was this signature generated from, is the data correct, and does that private key generate the public key". From an educational/realism standpoint, I think it would fake ECDSA well enough  Wink Cheating isn't really something I'll bother to do anything about right now, it's a singleplayer game and really it's the player's choice if they want to cheat etc. In a multiplayer setting, you would obviously have to use actual cryptography libraries, but I can keep it simpler for now.

As far as I know, there are two secret commands: one is "p2pcurrency", and another one is what we are supposed to guess. I think I know the command to the first secret, but for unknown reason, it shows just some Unicode garbage, instead of showing some meaningful message, like "p2pcurrency" does.

So, should I dig deeper, and try to write some code, to decrypt that Unicode garbage, or is it just a bug, which should be fixed?
That's really strange... no, that is not intentional, if you get it right (and enter it in the SATMiner console) it should show up as legible text, not unicode garbage.
If you get it wrong, it should not output anything, it should throw an error along the lines of an "Operation failure. I guess it depends on what browser you're using - if you maybe want to PM with your browser and the command that you tried, I'll try to see if I can recreate it and find out what the problem is.

Just a heads up though, the first secret is just a stupid in-joke between me and some of my friends  Cheesy I'll add a lot more actually interesting secrets down the line.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin investment doesn't guarantee you richness
by
askii
on 25/05/2025, 12:37:55 UTC
From a mechanical-design standpoint, Bitcoin is almost objectively the most superior store of value asset that has ever existed, and for the majority of people, that is the best use of it.

Unless you actually know what you're doing with trading and all of that, I think the best advice to give a newbie is to treat BTC like an on-the-side "savings account" of sorts... If you can ignore the short term volatility and just DCA (stack those sats), over the long term, basic economics is in your favour, a fundamentally deflationary asset will always beat inflationary currencies. Unless there is a devastating collective loss of trust in bitcoin (watch out for those patoshi coins moving when quantum is a problem), demand will likely continue to grow and this idea will hold.

As many have said, patience is key. It's hard to be patient... but large scale global Bitcoin adoption is an incredibly long term process. Even starting now, if you consistently save and accumulate over the next 10-20 years, I think the prospects are very strong (other SoV capital flows into BTC). Generally speaking as well, stacking sats can make huge price dips a lot easier to ride out, rather than trying to time the market and "double your money"  Roll Eyes
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 24/05/2025, 09:52:41 UTC
⭐ Merited by stwenhao (1)
I think I hacked the exchange:
Code:
wallet_PK == network_params.exchange_cold_address
true
And then, I can just turn off my miners, and see, how the whole network will give me all coins.
Yep, I suppose that's a natural console "exploit" as is tradition with all javascript games  Cheesy. I figured that since all the other network participants are "fake" I'd just have all coins not mined by the player sent to and kept in a single address, to be used for the exchange and other purposes down the line.

By the way, I wonder, if you want to make it similar to Cookie Clicker, where the latest possible cookie maker is called "JavaScript console".
It'd be funny, but I think it would break immersion a little  Grin

No, they are not the same. If you generate blocks from the command line, then the difficulty doesn't change. However, if you let the difficulty grow exponentially, then it can reach some limits, where producing next blocks is no longer possible.
Network hash rate (and thus difficulty) doesn't always grow exponentially - it's actually a function of the market price. So, the same way the maximum market price is definitively capped, it crashes, and doesn't grow forever, it's the same deal with NHR, unless I misunderstand what you mean. The difficulty is also adjusted by block time over the adjustment interval, same way as bitcoin, so it can never get "too hard" and make blocks impossible unless there is a gigantic hash rate drop, which should never happen.

Chainwork will overflow quite quickly, if it can grow exponentially. If you have 2^256 maximum chainwork, then if network hashrate will double only 256 times in a row, it will always overflow. And I guess, if you fixed it that way or another, then it will just shift the problem from block number 3067 to some bigger value, but I guess there is still some limit, and now I am trying to check it.
Theoretically yes, if it doubled 256 times, but as I addressed above, this will guaranteed never happen in the scope of the game because the hash rate simply cannot reach that high, not even close  Roll Eyes
Post
Topic
Board Project Development
Re: Developing projects with AI
by
askii
on 23/05/2025, 00:29:22 UTC
If the AI is converting code from one language to another, it may use the style of either language unless you are explicit.

Being explicit is key  Smiley The AI can't see inside your brain, so even if something seems super obvious, it is still your job as the prompter to provide clear instructions with as much detail as possible for the best results.

As I mentioned in a previous response, vibe coding projects is not the way to go! Use LLMs to teach you concepts, write pseudocode, and at most, implement helper functions, or functions with well defined purposes. Trust me, you'll generally get nowhere by asking GPT/DS/Claude/etc to create an entire project for you from a single prompt (even with plenty of context), you'll eventually hit a roadblock, or you'll be stuck with a bunch of issues that are a pain in the ass to resolve.

In my humble opinion, AI should be more of a learning tool. The same way we used to use google searches to learn and solve problems, rather than copying chunks of people's code and frankensteining it all together  Grin
AI is like an infinitely better google search, so I would treat it as just that.
Post
Topic
Board Project Development
Re: Developing projects with AI
by
askii
on 22/05/2025, 14:28:29 UTC
But what surprised me wasn't this error, but rather other errors related to small details, such as this one:
DS wrote the code as follows:
Code:
private void btnBrowse_Click(object sender, EventArgs e)
{
// Button code here
}
A warning message appeared in Visual Basic:
Quote
Naming rule violation: These words must begin with upper case characters: btnBrowse_Click
This warning indicates that the event name btnBrowse_Click does not follow C# naming rules. According to naming rules, event names must begin with capital letters.

The problem can be easily fixed by using the letter B instead of b in the event name:
Code:
private void BtnBrowse_Click(object sender, EventArgs e)
{
// Button code here
}
Small errors can be easily fixed, but I'm surprised at how an advanced AI like DS can handle them, because tracking and fixing errors takes longer.

This is just a style convention thing, not an error. But ChatGPT has the same problem... My guess is that for simple functions like this, LLMs pick up patterns from older codebases, and since many legacy projects used Hungarian notation, that is what DeepSeek or GPT will use. If, in your prompt, you explicitly specify something along the lines of "always follow Microsoft's C# guidelines", it will not make these types of mistakes.
Post
Topic
Board Project Development
Merits 1 from 1 user
Re: "Proof of Work" - A game about the history of Bitcoin
by
askii
on 20/05/2025, 23:21:26 UTC
⭐ Merited by stwenhao (1)
By the way: initially I thought, that I can mine more blocks, but the counter seems to be stuck at 3066 total blocks for some reason. So, the status from the screen is not just a snapshot: the network cannot produce block number 3067 for some reason (maybe because of integer precision?).
Yeah there was an integer precision bug before I added the pre mining. If you refresh the page it should be fixed, you can pre mine the same number of blocks or more to verify (or wait, but it's the same thing).