Skybuck's Pascal Coin Fork.

Started by Skybuck, February 23, 2023, 07:17:20 AM

Previous topic - Next topic

Skybuck

Skybuck's Pascal Coin Fork can be found here on github:

https://github.com/SkybuckFlying/PascalCoin

Currently the branches are quite messy.. many experiments happened.

I mostly restructured the project. The original project file was pissing me off because of missing source files, the original .gitignore was pissing me off for not allowing to update the project file, and the project folder structure was annoying as well, so that has been restructured.

At the time I was working on this fork I also had the desire to work with different Delphi versions and also virtual machines to test/build on windows 7 or windows 11.

Virtual machines can be slow, so the binaries, dcu, DLLs, EXEs etc are included/uploaded from time to time to the github fork to increase build speed.

An attempt was made to build PascalCoin with packages, while it does work, it did come with some issues. Packages had to be compiled into the executable folder to run PascalCoin, this was done with after build scripts/commands in Delphi project file itself.

Additional compilation settings where added to project file, this is risky because Delphi can re-order units in the project file, by doing it in a certain way it was possible to main it somehow, but I forgot how, but so far it seems to remain, probably the ifdefs was the way to do it or so...

Building my fork requires special procedure/settings in project and/or Delphi environment settings, see comments in unit files how to do it.

This was done so that I can see exactly what is produced by the Delphi compilers, to the very last file.

Further changes include: the usage of submodules if I remember correctly to be able to update to libraries/quicker easier, or perhaps not submodules, but at least packages were created to be able to compile those units seperately, just once.

The restructured and reduced branches are currently the main branches for me basically... reduction is the main one so far.

Unnecessary code/complexities/insecurities/buggy code have been removed, such as RPC, language translation, to reduce complexity of project and focus on the functioning of PascalCoin itself.

Also abstractmem was removed to try and get the original pascalcoin working, AbstractMem is currently hard to understand.

Inspection GUIs were added, trying to make sense of the PascalCoin streams by trying to visualize/inspect these.

PascalCoin uses multiple threads which makes it somewhat more difficult to get this working correctly and also the TStream class is quite tedious/complex but some success trying to inspect it was achieved.

Streams come and go in PascalCoin further complexifieing it a little bit, by clicking on streams in the gui that might no longer exists.

So far some success was achieved at trying to inspect how PascalCoin is streaming it's data.

Unfortunately the code is buggy/incompatible with the current mainstream PascalCoin codebase.

Using my branch will cause errors and possibly corrupt the blockchain and thus should not be attempted on the main blockchain and/or a backup/alternative should first be made by copieing it.

The project uses a special E:\Data folder to store all related PascalCoin files/blockchain that the PascalCoin client uses.