Author

Topic: Deep understanding for Bitcoin (Read 629 times)

newbie
Activity: 8
Merit: 52
July 05, 2022, 05:46:42 AM
#19
I've updated the Chart, i hope i put all the informations, i will double check and continue to try to understand the wallet.dat file

Code:

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
newbie
Activity: 8
Merit: 52
June 30, 2022, 06:15:27 AM
#18
Hi all, in the next days i will update the chart with the new informations that i've found

I those days i've parsed the blk, rev and LevelDB files and now i'm tring to understand how the wallet.dat file work and what's inside.

Right now i know there are private keys, public keys, addresses and all the transactions like this site says:
It contains:

- keypairs for each of your addresses
- transactions done from/to your addresses
- user preferences
- default key (obsolete, no longer used by Bitcoin Core except by parsing them to detect key/value and wallet corruption)
- reserve keys
- accounts
- a version number
- Key pool
- Since 0.3.21: information about the current best chain, to be able to rescan automatically when restoring from a backup.

So i started look inside it and i've found a lot of keywords that are in the Bitcoin source code, inside src -> wallet -> walletdb.cpp:
Code:
namespace DBKeys {
const std::string ACENTRY{"acentry"};
const std::string ACTIVEEXTERNALSPK{"activeexternalspk"};
const std::string ACTIVEINTERNALSPK{"activeinternalspk"};
const std::string BESTBLOCK_NOMERKLE{"bestblock_nomerkle"};
const std::string BESTBLOCK{"bestblock"};
const std::string CRYPTED_KEY{"ckey"};
const std::string CSCRIPT{"cscript"};
const std::string DEFAULTKEY{"defaultkey"};
const std::string DESTDATA{"destdata"};
const std::string FLAGS{"flags"};
const std::string HDCHAIN{"hdchain"};
const std::string KEYMETA{"keymeta"};
const std::string KEY{"key"};
const std::string LOCKED_UTXO{"lockedutxo"};
const std::string MASTER_KEY{"mkey"};
const std::string MINVERSION{"minversion"};
const std::string NAME{"name"};
const std::string OLD_KEY{"wkey"};
const std::string ORDERPOSNEXT{"orderposnext"};
const std::string POOL{"pool"};
const std::string PURPOSE{"purpose"};
const std::string SETTINGS{"settings"};
const std::string TX{"tx"};
const std::string VERSION{"version"};
const std::string WALLETDESCRIPTOR{"walletdescriptor"};
const std::string WALLETDESCRIPTORCACHE{"walletdescriptorcache"};
const std::string WALLETDESCRIPTORLHCACHE{"walletdescriptorlhcache"};
const std::string WALLETDESCRIPTORCKEY{"walletdescriptorckey"};
const std::string WALLETDESCRIPTORKEY{"walletdescriptorkey"};
const std::string WATCHMETA{"watchmeta"};
const std::string WATCHS{"watchs"};
} // namespace DBKeys

So i've tried parsing it alone by checking the source code of BTC and the wallet.dat file but it was really hard so i decided to start search online and i've found a github project called pywallet.

After edit it i got the wallet.dat info in a text file for have them in a more readable way and i've found that there are 2000 keys and 2000 pools records. Why?? What are those??
Here an example of the file:
Code:


hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
June 01, 2022, 03:02:21 PM
#17
I'm asking all those questions because while updating the chart i'm tring to recreate a simple cryptocurrency using C# just for learning. I've already created the wallet part and the script for sign the transactions. In another project i've already created a simple blockchain so i only need to put the pieces togheter. If someone is insterested i can post it here (i'm trying to add a lot of comments for keep it simple to understand)
That's a really nice goal! Honestly, if you do it just for learning, you don't have to copy the way Bitcoin does it. You could use a different DBMS, maybe something you already know how to use and manage and which is potentially newer / more state-of-the-art than LevelDB. After all, Bitcoin is 14 years old, and many of the options we have today didn't exist yet.

Anyhow, here's a pretty good explanation about the blk.dat and block structure in Bitcoin:
https://learnmeabitcoin.com/technical/blkdat
newbie
Activity: 8
Merit: 52
May 31, 2022, 07:17:08 PM
#16
Thanks guys for your help!!

Unfortunately i can't post links because i'm a newbie. It doesn't matter i will post the source code.

't' + 32-byte transaction hash -> transaction index record. These are optional and only exist if 'txindex' is enabled (see above). Each record stores:

    Which block file number the transaction is stored in.
    Which offset into that file the block the transaction is part of is stored at.
    The offset from the start of that block to the position where that transaction itself is stored.

Thanks you very much! This link helped me a lot!

The only thing i didn't understand is how this values are stored in a file.

Is the file structure like that??

Code:
'b' + 32-byte block hash -> block index record. Each record stores:
The block header.
The height.
The number of transactions.
To what extent this block is validated.
In which file, and where in that file, the block data is stored.
In which file, and where in that file, the undo data is stored.

Example:
Key: b <32 bytes block hash>
Value:

So the result will be something like that:
b ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
1 ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb 1234 1234 1234 1 1 blk00001.dat 0 rev00001.dat 0

Struct:
b: Indicate the value type
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb: block hash

(Block Header part)
1: version
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb: previous block hash
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb: merkle root hash
1234: unix epoch time
1234: nBits
1234: nonce

1: height
1: transaction count
blk00001.dat: block file
0: offset of the block inside the file
rev00001.dat: rev file
0: offset of the block rev inside the file

So if i want to find a block informations i need to scan this file until i find the block hash i'm looking for and read it from the blk files???
Why keep the index a lot big instead of a lite version for keep it always in memory?
Why store a lot of informations for a block?? If i understand well the block header is a value that contains the block hash, previous block hash, merkle tree root hash ecc... Those informations are not stored inside the blk file?

So my probably wrong idea is to have a file blkIndex that stores only basic informations like :
- block hash
- blk file name where the informations are stored
- the location inside the file

Read it at the startup and load all the blocks headers from the blk files like Satoshi says
A block header with no transactions would be about 80 bytes. If we suppose blocks are
generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems
typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of
1.2GB per year, storage should not be a problem even if the block headers must be kept in
memory

and when i need a more deep information like a transaction i will search it in the index file.
Why create a single index file instead of multiple index files for transactions, blocks, ecc.. (i know using offset will solve the problem of big file to read)?? In this way is confusing to read no??

Thank you all for helping me understand how BTC works. I'm learning a lot!!

I'm asking all those questions because while updating the chart i'm tring to recreate a simple cryptocurrency using C# just for learning. I've already created the wallet part and the script for sign the transactions. In another project i've already created a simple blockchain so i only need to put the pieces togheter. If someone is insterested i can post it here (i'm trying to add a lot of comments for keep it simple to understand)

UPDATE

Code:

7X1Zd5vI1uhvOQ9a7dy1xGIeHh0nPkl30vGJ3el0v2QhKFnECNSAPPTD99tvjVBQW7IUg4bYZ4glxFDsqfa8R9bZ/P6/RbiYfcxjlI5MPb4fWW9Gpmnolu7hv+TQAzvkmnbAjlwXScxPaw5cJv8icS0/ukxiVLZOrPI8rZJF+2CUZxmKqtaxsCjyu/Zp0zxtP3URXiPlwGUUpurRP5O4mrGjvuk1x9+h5Homnmy4/P3moTiZv0k5C+P8TjpkvR1ZZ0WeV+zT/P4MpQR8Ai7suvMVv9YLK1BWbXLB918/+++/mtf/xN40DQu/MC71scHf4zZMl/yN+WqrBwGCIl9mMSJ30UfW67tZUqHLRRiRX+8w2vGxWTVP8TcDf5wmaXqWp3mBv2d5hk96rS6Ur/0WFRW6lw7xhf8X5XNUFQ/4FPGr43IoCjoK+Pe7BimmpfODMxkjukBAyEnhur59Ay38gQNsC+C55vDAuy7COMGA6xwub1AVzfhd5/ltOKEPJN8KVCb/St97AP/YttvgH/sq+G3HB8Dv6PpQ4HeCx8F/jeG/2BwCtRzh8GuxKgSZoEOXhg9AxvBcADK+1QNg7rzywSs+zdx59quru9XM+Pdy7G7A1CsAsx7QPw6uTaCh6dJ/jKfDBnwXIQz2wLMqtNdj73H2PByoGgpUP6LiBgPU1K8KxP6EWRlGVZJnpQJx/KJVG6xlVeQ3qANBANZhmlxn+GuEgYrw8dcEbAnev0/5D/MkjsljQDy2Md0/gvivrq1rju+blmMGtoFR1ZIZtqE5qjT1fE26wHZtFbvNhf0jVN3arr4aazjF2I5TYjQNl2m1S2YRv7aB7ziqvAb1CH+obcy0AFCvE0pHA2rXcDTf83RB+tahQd4GIG/9DJAPbBfLfbsGvX9okHd+VsgblkVAv0LUHwDkXQXy704v333D0v0nkToWlTry3tnebfW2SqS7e8aIMAMkqKP4Gl3yr3lRzfLrPAvTt83RjuLSnPMhzxccG99RVT1wh0q4rPI2rtB9Un0ll2MVgn37i9+MfH5zL395+DH9qMyXRYQ2UDKqsLhG6wwQQbQELmtJoEBpWCW3bd8NhDF66WlRhA/SCYs8yapSuvMFOSCrDh1utjoel8759vrz8Qe2goZ26ld5Ajk5eyGnDK9aoify9S/5t4ai6LcHib72TobWcZGhdxRkqBoQP9k+YxhWx0Q78H1G1a92IBh6Z1Z7Q2YVBNgfsz4N+vYxieXeseYcKdbWasvYZLn6quL1CGWZaxoaEWG1wdgSZbXeI8kuZ7eyy1Og/Jy4x92Uew5DQekqHNYjCorvGevOH0hB8Z8zSQk5eywkZWAl66BoCgS/5yvbxdUM0fcsSAxkFpYzTD0kheF6hki8wtSXZZJd478UG8kcleTvjJx9+e7UdFxycXqdF0k1m/e31YxMazpFbhQpoRb8S+wFE33QgIjlOprfcUoKhpQj+tAmY/ewyXz5cu9W47eTs+8fTWTM9eLdr+eQyfIef43CjPw7Q9ENucOUPJoeyPMSkZ+qJrJFTiAITOjxGf1c0fhXB3GPBbxkLKzC21GEvqygvRcYqgPUgPIG3MGwrDr93zNkZTf0b0ikyDQvKOrTaInFGqp5ssqrkDxiEqZhFpEjuSCIuzBNEbk2qSR6ybP62j+uvn7Cf+KwCidhiShjp/WvYRwXqCybJcwfWjctKTDKPErwepgMwf+ccCLjV1PpwWTNTZbf0een5D4T8s8c0a2B3O2Xef1gfgbRMOtn84vb7xzOMclU4pUx7cd0HXN85YNYD110vZhX2sh0qUI7weB0r8mny1xwEYMxug/nCxooTuj70ifQe5EndO/fBjT+f4YYMNi62YILFCG8ExXyudcoQwXDJOVnvka8QJ2gf7GsGo5tUJE02Lu6/0TPwTxS0ZvEzRLZGXSh5IbvJPjXC6N/pDuXNcwpOFU0MkRVv5QtckuyqECUep6rRDEeFSh1yp0sUOoTe5cotpr8cMn1r1OV/mdVRVIXT8kzzfMUhUU2R+EkqSKswGhRjhnzvELRLCNwJ+uheRRjmie4Lc6PPG3CMn1FS/AALcEDciP6SK76/uXvD388WK//fXj7ZXER69//tWdjCNmrJBqVCy7+hqGUTcoFBVaXID5zaXXalg3G6SlAPeqR9xQYdN2TIg/jKCwrLijbism0ILTV2VZOLpaTNImIvMJC1jpn/3slxG1rayKi7c8ZakTiJM3pHhdKQrD9TLEw8kuUZ9OkmLM946El1PhpMRKyTT9JmsMFmue3zRacoTsqjt9nTGjz9+JLYvd8Va+KyVXlUY0Y1U9m0vFZeMtEeVHL/FfPV9Sa1uPKG5R21ousTeefzE/pu9eT2Qwba/++/f7l+gzMSyKEulpTa2stQpmotbZlSfUEqrOVTNWXtTKuszFawhQTd37PlxVXHVrpbYCmxs5vrAb+4JN3VE2g4iNpCFAoCowdqZYizpgS3PPVC6WEP4HqGPzGq5myo4RkOb8qHnGFJ8we6Ef2Zgm7RABJepmOMgwoe69rvqO40k/TlC75Kv+DrXIsDlJuPseszH44cI6b5lnFfTyGOaiyYzr2YyxoiiSTVtp7HxsgyIKW6uQgljM2MSq0fWYnxpBvTizXVTEXO8iP7WPFHKC82Iaa5wmJz+FQp2bMv6AOiuyKNK1DQZzweb0gbi3iWJ510PynLTr93WERrqPYTxTrB1Js+gtTiJzxxwIS9qYRYqEB7jkg4bpt4jJ9e31AwjBMd+0Vw4S5XDW7XKhphC1b1Oj+s8zFD+OS0hM2QXXbX9wz05P/LrS7C0R1uI9hNEuoJ+vkQ44lxCvxALxg9gxhux6k+0KSTra/joY3l0NeZ/+AyuWcANDagqFEj+q1ULCxVdVTD0Aa1+kCQj6bKpRsSEAPWNKpmpd/clfJQdJuH2jwOiVi7bhpbUfISIFM/sFSPxSMXBTJLbP0f6O2/IkdeK4TeI4bIV03Xct0Q90ObCsOPU+fWHE8caaWgVAUTAzdcaehZ00i3fd15NgOipHq4dkqrjoIL7gmVBQG1vgNBXk1UFY7Cyngu8b+iW57bhxOHds2JqYTB5hPfdc1vMCK8A+GO504rjs1JrphG6ZnBbFteLoeu24Uh4F6v8kkwHczQt3Fd/Km0zi0TPzdjK3IQabrh0bshzo2+z1DN7zpxJpG02kUW46PLwrsMPIsNHkibok6xXZCpn5hlE5TWsV/m5QJrXodBP+mvTH+e7H0Yd1BtfSftms8pVZ2a5jaSm22DrgvdSj4bLrD9QyAita308dMG+tjGyhjn9E8r9CRaWM9IN7RO8zkAT4zH4gZDYZ0T1UremekXjgmMNscA5SrGXUVeWsT6iMrB4Sdr25D2zKM4UMM85pEr85mIXF5PzcOsXWnjWhb3WwMKPnKGqrg3FM9XAr8y1m4IB+nKbo/Jb19qP8h5h/fRGlYlkkEez/EZ+r7qD0hj3g/xkQ1rn0e/FK39oisqmki3y5Qkcxpih87yChFtBBitBMWwvB0FVpqcsEFSkxdXPSnckSA4DFZILthzrMvX7/e/WNe3o//nl7997YY37pjY9NaKCHSHnXDtHLGVYISx7bz1ijeFdMzLC3Ayr9vBuQf32vTN9avoA4M4gEMLvye65w4pt3V0ztyjwFOuVNfGaYGUDg967TXGHXi7nXIkSaB8VwlrCMUZftYJ10ASflg0AksUvkU5bqPhNTtfTN6G4OWD21ykKLdR0oiiFSge8oVy1tgSWEj1reM6nccIRHep/DORX+WwtF0T6MHWepcmIXXNK4rsozJvd7UCYhb7m/7z2vYGtvECtDM9mbnuoBLw/SEvdV3KABEOZAz9g4VIguSseyozs0UiS+IZVy2+ZDlSmLhWU6bc0VewtGxZ7fT2AGwp61q70zmLmpH1A11RFFuFYmmsRCuhOUwwmKapbTMkn+WSNyM5HWcEhw2KWNRvkxjJrqp7vrx9IycVKdsjMzX5KxlQWFMmRmRsoH6p/cXzfn0/tNKFhyMPNirtPcJlEV5jCRZsXEVwk8oNwwv0IJgZSQR9M5ZQ3nn4Oioqgm84xnHlA4XzB8A59B1ShaalD6eOk0pkGf38fw6dleeD5UmZUVykzbITxRHygVNrlKNNUI9Y47+U3oGybCG4k1b233misAVY9+MkXuZYNYjqCfpX031TTu5kcGv+bVcMPYj8CgbICVVF0jiBmEcN1ezFEZxbZVDV9KcL3p9SjPBpRW0U80SNSGztZo5mi/yPNVWWrn1YYaiFcbvEWwdXsfvY29abGL20aMS5lKggHg1l/IU2dXcuI7lnswVg/LuafOy7K0afVRQLU2ebkumOEdNimIDHUbYGKZJnFTMyMT4rXmTVKYUNf/U/B0nmMOLmPEMvVg8vNGYZd6iu+eoVU4yD8WNeLvhmtfC+sHNXku+MwanpTEirXKzR6/gys08VUfIrCbknQeZtY/kYpBZ/b10yGhybTqOpsfcTL20ztk0P0f4xmXHEOhB4jGjntNzoILgjifG8TZzxWxdeux3fT6etz7Vx6zzE378Cpu3axm0Xll4yeRiFiLBmWxuFVZ0bR1+VK4e6bidCsStIC6ciYRkBW93DP6NPUHS91N67tuzN5d0I0HRApsdN0YjTZe8upHaS2maLCr6ZGwKUcWW1d5cI7kMsCQeVFJMQq55fXXW7Lu8SjdKl3GT955jpa4syRukyaQIiweaeH/Vvhk20OL6JellUT5f0Ko9cqMTtgXWb62br8TWtszWn2m/Yq8xD5ny1+h1nSvZOep7Jo2G2UXXfFklizQRl9fncWuV7baUEzS1Yum5m3umbW1m7PUSigdrDNeXGLbw1S4wvLu70/ICYTQ88OJCTtv4021C7JDzeVhiHGCeH/MqxLFJFJLzwPMNOzACx7Y8DJDzaKbbGsX6k9SNHtA1Nr2OQa5DaUogigYrA1W9RB8zbLNlVEotZgX1uCo5MygLqRpJaosemNBlavxywbTWcJKkTMmNcqaE5qyiJsxYf+14SbXn8p9lUhR0/gYWnsuCXXOTJVMmI7j9n0eIStAinzClellUIav6ScjNU7JpUoUgpefX1EI+YQTRhaRUgN8kd8RZWc4w8UynB5hEZXmbJ9HYXh+9tOH6YIUw2JYyb8ij9vPL3kPuP6Cland5EUu9AVih2oR56+RNtsznqLO3Vsx7IKgH3h94sSQrPmOb6CSMburzWcEo2w7bkQl5lYYpnkfatNWLnqAoXFJ/Nr2KF1eisHxoljdH8wmrxMtK9vp1iR7pmtK8YbbkJ7Il41VVNJL1DDapjcgb3pgGJG+w581IKTPsUrdwQXOKpuc0OmNb92xrmXLHHE4bNb2Tu5x8fn/x9s1HGiTgVFI7sXlfD/qcVffn91y3BLm48jUW7I7fYbrOc2gIL7lnbI2ya6YQ05vIbEAIpsBqIWfGcvZqtU9GqgDvSIQ7vAjEMU10afWKi9/esXek+NJreJ0wOJGi8N/Qwyuq/m68AoZl5qys9fnGEfQmX05SVIO38Q8x5ZgsCK8AqCEVAYxERRzZNEN211oJ5mJCxQpwa+BhNVBen16+dfwTBqqN8CBLxmUpqdo3CC3qNZcPWL7NGzHYSOJGTCIsFChRsMBO680JKTH/cScM2GE62RaL8f6MeMCINy5JeDsRwZqyZYblwiyPxa/M+VaQNbGM1+cgatfaAy7gqgLFbp3d0n/KAFTWs1L/2k1BB/GUtDcoE4i0g4ByPG8oQAHal2gdsSUdH016n2lZCiI8BREgwQ5Fr0DXrQssUpJ82Ylo8a1g78YEQMyBCkOQmAdLRLDUkO9KINaNKRIMtvsDBKfl7B2camyu6SpzGRXJgnz4wNW1gwOgbewdgKr7GAAg+3CZXB8iDL0NYThc0Alop3GJ/lkipp8Ja/fgIOf6+6Y+oCfCxm3XUKaJjmukqc35XXKDlezzVhLtD91BUP1Tu75V9yREfABY19q5k5YHaBIg3rvRuP78rOuzZZkdxG342oe0kPbJfDxBY26gSZsm5NwSToqWOYd3VIwlaoxxHwFGRUQeR3sb8X5Q4U1jpybZNFew+ROaTaZjKwQDqU1gJcBgHV+FabQmvfoxPAs0UlWKUVW3nxfUCeyZ4NzVjLaBDCp3O0Y6MFVxBdJXYLsUCkwKa4DPBZeQnrljXEIRlDYua2Sp9RGCd4U5xKLnrSyrDbx6ojHkkoyepx5H6qcNC7qLPCxobgKjpPA2p/ldnIyqfNGWGVD+ZsQbQsuvwq+8y4ubJLsGFsvDSHnJ3ng+bxqQsyddmBe/vRu1feyM8oskbJoiNiezpLlfpCgNl4hSCKcVn2HHQB+5/FCSzML8vCRtWbSt0k9oAClvekoT+n4lLuIJH13H5glxUrBbEAf1c+VKwHIBuXK4vsfAKMlVIrbNlQ1SW705L8MqL2fE2c16TBI2mR5BM8heUGx1WgXaQDMcUxRd7kbqAtZ9B73GOJC4GUZ2w8J14EsSOkLYPUsUA12hzCamuxskQ9HbLbdWydXY7K3PBaUdc8d27L3zrdph5G1dXsZbfJNG3sxkbeGM/7iJUtTSkCWSaNOAHk5yShozVvTAgtw83x8qRaJnTKQKm2dARb6hb0JFFlyiOtygFNW/drR01PXtzMNWpSP1EJVoGdPchTymhZmNOhKjKImbTt7LWlVvXTOC9f+6umU6UlV/qvSylC1UFPTqWbggacjPgvK9YEPFVvc0H+g6M5xuC3jlr1Y2SWC5S6IDPTWXyFu+ZnrROUs8L5u+6aJDe3oXPrDIXZ0BVFd+p8zYqbPduuRTU9uCpmyklC/wckogx/QN7yUiTmALpm3/DLq489+APmk/IcEpxeUekDYMFpcbgkyfQmkX83vD/ePv/5nvp38+fPXj9Obv10Da8NWMkYBIn2TznOTcuXaFtlwrIeeghfWYADlHk/RzlW7eODAlu+z1+wsrIDLwRJnRJKYQYFFN4C4EYbc6hIpfVqbHc+WYP5x0l6z1/7m4V9iMUUsryYSoLYp69BNe9bOgVEelVFUhWJHp+XRC/fvuQz6ffDr9yyi+nRV2nM1sDyhBEOoAFG8jsoX+l3QL4yl1Bml+xz9PMDlPEyBSxmN45DyltGF9qcMcxclyzoNp84eoeFgQwjnHlDb+ju+aoYcxCdiMReL1mGXlj6t8zN1LYzdykO8iw0CG/RzoLOh2w9kpnYEDllSB2Exh5EPV6iGMwOjFOet+SHdgOoRPFpVQZX5rsiM+rai3dGk8mzzXjtYFq8nNcgYlyij1NZs0kY9RkzncVGj8/CTmWL3kUvbS5haiNzVQtGFplYjel1UY3aD7aBZm14iLn3+WqORa/rmBNQosTM6TcpxU40Ve0jRaInWuUTUm0ol5zsd47xzn03FY12EJqZSM43yc5dWYRCHYFZigMM7xWv4P/59RzZu/8uXIdDivOCRntyoSROIWDmcAp/HSn+GH8/uz8LRDUn3v6F/q4yezjhxG/g4vtg/JUU74+Njhe9+TeXiNTrEJGFV8PQXhvDK5RZ8R7+vLOgMuCGOyL3GRL65EmTO5S6cJMLdSm9Z+Wbi4yllFr9ImeIYXi9WrXXAS4E7cLSepDuM2w8xQutAIYZPuY5xRiOp5Lo7RYsQsvCa1iPOHcRhFLD5wnhO5jP/GKEUVGrOtfVzT4oFT4VDk0NERvU2zrfuYMgB3j1RFKRvPKsofO4jae4Wgs+nIgT54BgSZqu0oULrGYFps/vbUNiPNSWhlDD2ur4WK1R1XYQF7sm8BUHGCQHMH6wg7fInDWoxsMaPNa8NvDHhvXch/pbSs6A94asrEa+6IPJmkN9g60/Buvr0pva8aiJ4wZbu25niGbfrs33aX2LHhaaY8C0NXjSEzMDRfvoWlotV2NKe1T9tDYXltQYBAOK/1O9F7L9EeiH8cQzMAPecxbgrgy/qHupr3cEaq85gRShoyXrG6vRNTN01NdzRaF+1jPYg4NY4GDZi6NUuGpzp6eb94UPXNs7ovZpf4jWOBumlZbekBVG7tE+q+KnM+0hHlxHtS0HjIFUmSPblqx7pYLfLREL9tOG1byz4wNKhC6HfeGOTEMC37WOBsmbbmyfACZjTuCM5rG+I/dV4L1BPxElFn4O+0mrtWz0Rw5/1nEjak7sPPF2e9jXHZtfGbhhOUvg6jm2t6vKtI4lc5D+dJSsjhHUpvEXnOaJOZof0QpNNpIwcmZUEDzwyjH9sHfA0oeZ2F+li3sm5+pRwcbPWtkHrM1OFEqXeFHC58R1tNHzg1qWTQc20/5BEYzIsG4l613OpggxLZ//BX/PDPr4u7d5nl/haeXgUfojl6SK7jX7/a178lV9kBdmWCPP6gz6WX7gkgiFUVhjbb+5jHqKDjM/jMR9EtULCZ3NqDxqQF39UM1QTCyWT7Tkb8IkzozI2CvWOdQfXQvpNUY4CvK9lZrGsw74fLl0UqA+iv2zPtxHdsB2JaP0KHyLTrXd87ZVp4vqqadPkypeqp6WGu1Z6Y7BmdUaXqTu34mgNMdrN1rY/JVXCL7/XVSUwuTDHny2YpzQaTfifsX9LvPF/w59+HTb0zn9EHkrFALrYMTXcHwiZgV13JFcUrcv0ibHvh75m8F/C6iKfsv3tpzW10B2dC46ttSCceLBdZla7KgKSEFeWFt00/X4aGd2/w+XLNybwekcn6XlKmu8myjLjE61vBqcr8MWQfzn6hOXVsQk9T2URLJrAFl8rJv5OlyJSTU/HqBvDLhVAoDNP/OHkW3F8XOAnhHmzI/V4/3A8mY6p215tkOk0ws9PGpyftdNz+nVnb86rTddoaELOaAzErCER1P/yYZMyn8Rnd0YrZg4Oa7jZU9RjgbF/rI6IDwm7VeL+5gGDBIaifhDdEnjQao5A14gxx/BUTT6UkeHje8HJSJqTpMPEziRYWtCk5FarkbGKB8cbpzG3Aa6FTJmVFn0IyK1TXJYlGLlikQFsqkoBO8ufe3mLsLbGZ9aAup9W6kNw1bpKARXePlMwPabwZ9ThDfimXyrwbvLKC5yBgAckAjMMBCbyXqDSUIARRd1dT7ojYUZ0M3ml2z/WxDDXWOK/R571XO7N0no1erSLeBPIRQMT30f4P9qJDQ5w7qHhkui+3UaHRvpqO7y+P97U9c/TTDPglK+8+bCWZyHNc0vkn81P67vVkNjPPT/99+/3L9Zno1vzoGBcR9ziQ+b5GbRxKE33bN9l0hq/lmbrW9SC5JDFkdTipv6m+MLBXbft8YhaXgHwQVVek1RnsHUFZzw6TaimpEsvihHSPbrJFxM2YXCU/Rk1SQ8ztWpbXgKJI0zSiV+CbUq2BS/Hte6ugdYtoCXdWzBnOuTa0/kI5xtEy1vnv7QIqGFRlZwHiXZVr+D25k/jAN5jBwnHbF+N1Q2/gBLAA2qb6KPuEw4dqzbOC0aHTMcdmNx0zgOYYmtAGHvSxg4MObnuDHXyrbEyZ2Ju98LoI4wTDtEOXKrjXo29jInQNX7Mc13Bty6d/FUC7uqHVv5K/KtR9w9Usy9fJhwDrImt2t6fhANgmntBs7rByObdGne/qmuvbgWU4OvlrtDd0rAT6vmdh7rEt1zVVBsJIC3zX0g3LJX8BMeNogeHYgRk4nme7tj8UWlXvJm2iaygY/WHf8cExGMdSoGuebpPwnoMRAnUpJ3Xqju0FtmPq9C8Q3SHtAQSijcCre9X2jilH3R4optaJwqPBlI8xFei2oQeOT/4eNaLUShSKKOtnQJShG4FWgxn/tY8aVapi8WlZXVDxp59chA9zDL8nOtoPA2/rRaFlB5rvSBsO0GcZ483HKrHh+Tr9C7QDMgJbEyiz9MDvIVICo03VRRjayMGTz6haFk9NPjoMrAWY2WqA47/ekWANjm7DYhEfOmOVlk/B174Yx9caPQ9DUFX1NlDhHUOjgBeoHAoBqqpXdww/XgyYga/Vxo/u20KkHyYKDFPBwRcy2gqwoI4B+KTlurTZu2pS1CHBXg2wf8ijG+ZXPEbgB66mO25t/B828FVNa2Wni8cmWPzIWOFRM1JYN10rGNGRwg4fKfz0gR1HSD+eYWqYZ2sS+qG9y9AtTdIdnMB8OgHBQ6hV8/c8DXuf67MTyLu2p631D+2HcWG4r5x4IhLTlZ68tyt2tEMLRwyGfavT2Ipuk0BvK0Ik7grUDoVOVQH5dHH1/tPvpx/IpdUvygBRZTbFokAlnxDFxkMnVcbaUcVhFb5gveZyR42crEI5tuS8wSTnymkkdWlJF8XtPBhqph1j3lJ/iAWN6I1tQMvwNMeyTdt1PPIXMMJ3Js43KRiQ84QF8rk0UPodS92NWa/Qpqkn6apE5Ig0Irhu185J74wKnVGdO8eS5kL6GWqtzLvmiaj6qMkd5DfgHWmZPBIJf++lJ5SsmZ/8CN6Y783h17Pui8Qfd+tuQOJDeHVhGlfdg61uoWva6hHTgmxvYRHNrjGBaRkhyPNpcr0kxH3+mjfHk6hyzBvUjqfYnhnTUT+iORgqx5hgx9VdPmaEL/1A9kraEfQbvrnxDVtwnmd5IvfnOdKg20nKxxDRXFVrqks4W+LT1KweeoLC5LRy1MyG+yfzsr1soKukywYuvEPaQdePplF30Br9rQ780MRHfhXbaUuWUEzHUo2ktrO8gfsdm6FFs8NK1suB5crX/arlNdRyB38+oWMFclZCBKQwq71t6a8i317UJ9dbt1goGyUg14yyLvTH2DN7R5rjBgGcxwl/gPgNTPhqAIeVj7fpV5SWv2dDNZYpoS+aQPl9SQnS6CiTCxZmrbU71stYPoN1tx11ite7Trt1HcE/hsVNwyhGm1l+DWn6psjLNMWv3ZuciWXQl5fuclLQkKO4H3nYK/Xyi/o9levrZQCXqUf+kCaHcCZPpKl5iBSNHef8mqey3cEHRuGhSaprk3VcqCC7SvCXShdvWIMGJpT5XAOg8/gyq5JU0AzKrvPl9WwVT70XIxf43tCUZMlPkY0pWQaAd2NvQzeYOjGaNVYnd1zfZP0uLDkXS6nRaKuRPw8KQHkVNXmXDOjX3m7ULsxNyM5Uns/WBS3tL2hWiqwO0OcB8zZOuxs5ppGMiI0zNYrSjBii+JHbyDNCGYnW9q029Ot7298lVZOIfvX18lhn6PUkajawjDeQNEOYxv+LL75e36OPX5Z398t/Pr75K/N8IAdj22nUdzPUFK6zuge5ZJINxqKXnvCKDTZZir7tq5qfjnrM2lBhgkDNALegTHunB/J4uPjyW/h79PUevTn13lzpwenkD6CHtj1a1UtiAzT55gQTtIqm2EF+bB8LmlyrnePoOECbQKhTSA/lECCWgOGo5guaumhyHV/zpYY9qlt+t0hTRW9rgu0L2rjACTTPl2ohXdUZtFu8qVlzL3gD8GbpvhZIHZuhYqZh0Aa/kKmghlQTX/KveVHN8us8C9O3zdHu5Iz6nA95vuDY/I6q6oEXI5LRLG1c17Xd3bLu0fqi7o1LH0XZuVxmTh5Ba8nt0dq68x8t5QbzuUQ6g1zLvbYa4tFa7u2KtE+Lglpg4oQFKY8upTt3Cq9Ny+nQq6C9VaXahi5yJX74Ctvg5RENJbN1N3S9XQE3WFUPRXSJdt3qHiS1XqFqe8Q9tGpLsbqvik4CH02fqBFzWhGFMA4fIHuXd6nKizm+Gbs35IuL5XWxu7YO/T9iO5zwx5MvBul1pNMAHa0C/4YpZYHNk2/4Ud/SsKy+kZO/4ZXeAFb1n3yqWuuGo5a3nhNxXWNOIYPt3SWbLc9sIG7/dsFyUkME8N29Zz4Y1jCT0iubYdm4ZqiMROimWUzdTmaR37FRrbTGHPE5maQwnplm1P2XU+/fqBtAJ2I2uaaXt2B7wn2EBABSvT5t/MCcCDodd3SX0Cmgyo3Z6eg+jGhoYbHIS7wDSbEMYT5KsYQ0mSdNWEO0QSNt2vnUMnp1c5Sd0Vp2GBPfMfee0ueMzNfUfHJGwqKkAynI1xP5DbovOao9GLRX2py5RgRY24xS9z0SmODpbfwVZbO3wQUGO376Gj9uuaAuF7UlJ1EdxnzvP63XC/XuZtDCOFiGaZfjVuTSYu5hD24vpoK7g26+lAzdfQMYOk/jbypTE97RH2flRyGVYhYZCzWCti/VLDQH11fjQRxwJIhMumd1oPSNcbnc/ryqBsCnxuSKI8uV2iEzWTLvXyglsSyKfBJOaJupjMhrQYbT5B7F2kqcH7ijZYA+D0A/ImBQGdiPyOhjUhm4YavpKQpqBu/zYHVb2vhQ73ko1cKze4ALXCPwOFyeOHNrLToeJ6rHQGP00TQcVrcV0PyR8SZjVBfozDv5QCM9K2H3Q5nxT4RdbSZuRmV9NIgEIakmw36k4zS3FY77amDxRDSIensVDUOZ52DI01YJ+nTEdd9mm9skLEVnw46UsfQY0mFFc/Za/Ziuvoqa05IGrrrZoegeRUsa5xBmUJTP5yIvobk9j3qJMfeSagyOdWZb9m3CwparFpe0ljaS+g2SrsFH2TmyH6FhAJn0sADuozkTTLCq3HjXRK3LPJVao8X5cpKK+FbMTQissaVER+XRex6r5+ktooUaNc/DNGTVFRM0Zdaamgm9ccS7Ry1165kC5orRQ6cKJ3PtlsJL6L2iwRrVcnmksMkfZ34L0lk2xuY95aG6UVuSCaHAuEs21Ar0HatJTe/0LI8R0Mq1dWFGDTt6+SLF5B+PWt27scJOxMjvecVfnGOwSd1gN8CvzCOj6D5ClMHpEshdWFKdrLm3xywcp0I/lDyAdHhYHvShRoDdZNVojppIHqO0QtEkzG54mSppVoz/ECF1rjujeop7K52cDzsnH+8wW4ypsyV9GF9jiTHGBwmACzqHfZbnMX2Lc0yDISUC9GNVd+7EdYCIxHQ6Nfc0kLofQrGFefQYofShuIN0okaP2LbBlU6ehNQWiLDbtE1fKQqLbI5CUZjMCAyT2ywjeCHlzViGEUJC42PtPtwTDXj7pgGgdPlPtuHNwsWC+XWn8u4jXM0jyR9UKwNysp3YvbrNWTM61U9sTU/WCVI0hVUCmtA3KfIwjsKSpbizPNh8WSens0yflLtQ6b65KAihR2y9dA3ofsG35bNG3+l45SeoumNe8Booc+pT575mWQFovOQsHf42p/rAHV6laGXPQlw0D/9P6s5lCfX1vemFy1L0iccK3CK8ZjlQLD6wpImAPAWQr5G/DlUKq/AG1TdqD+uaq652gco7njFNdSF6dd48jD+FzN5ir0G1p3yC9U9U1bEd+k6jt+YIW3mBNWpSRV/0B87pm24Lphit1X8zJFuB/i7j00Drcd2qD2zTerxuhD6Sm6A7o3WhaBWvG4edR5tFnUVXuZ6jzmrIt9tG2OtaoCu6d28dv+64awN7fSy6c74V8BFkg0ai1UI5hciHdmyrg70AW8HQoQFSfh/OAzgH4nG4DOHYdlcAdbWfRXN907V8Tzc9Xfcdz0d19wAJfB440aePwR1gKs8GVLWVa3uwLuRPRAL/1dNsW0pbdNolY26gWYZu2bZveo4PtI7xdEMTGm/LlRuYGr1Cd/3AdRzz6dgCM8zNDdC1g51uO+zI+w7Iwa6676yj1f62nSfJHRUV9aDvZujc9uWZBxX62Jq/TDG6sx6/pWGBZ3imbVheYBkBVISpaybQp9Yhkz0twk3s8qGadKv53hfN9AmB0ndsEsRJ/4Ph+oF7oIneI3Uo3tACz66h5wUq4DGEfaBdTuBpju43crCH8aog4FXvzVkzl+QNNueumEF2go11U9MdjSQA6j62momNdDrAkL5+cGG5GK72qonGXcS4AGJsjE6gkGlXiAFcKmfLomBBgi5HGAeMBdEtSNgPBilaMMQmLUquO5AXtQTt6RsaF2Ac+ANB3lazND6i4iZlPkxE/nzOabyDgf8QAe9jCAIlBsJWMgzND9aJJQ+OPbqa70uq2WCTONRQ5O9sqhImdUwfB0rt64FukrbyHHCM+IHNwNQcaDPon/JB3U7dhWtBg8L4YFNIDtzcsXRsl8jDz9r2jm9pjWpG8KuQhWFA1o6tSQxs9cCKIEkA5bStRKyf0UytwyqOFsimqCol4axKWxObG8POQKhRG2n9TPU/T/O2bmoKr6P5x12wvRf+PCnp1lL1Fot8P44yvl1J466b2SIuQcXAfSxrsHfhC2NU1YMS3l6n7rvxglYIrQRDsvUHuDz2iVe1oO2FU1W9yT8qnKohkI+02Mv4OHlBKf+1O5PU8DWvZdioNpG3R5Sq9tApnK3KEl0LljlRIlqEF3Z6HtLawPpg26PwY4J84ju2A2Uq+BHaQ+lST8GhjiR3PE+TgjrACFED4no70NyWVdWDnw6uTX7Rurbfni3T1QKZ8TfspbAbmxcYCCH8IDPuB5Frq0kR7XxJs6XnbMgUK7HtDLvmGeCkHWmdM0VzudI8jJuM6zma5xRyrJgYqLNYVePOU8K3p7ifY0L2MOLHtDQ5GG1a6g4Fyh/DszTZ19eD+IFp1VRo9T0nzUKUbUf47RmdtAm0TgQMpxWv/pbIGup91ipHkKvzWm1LD3wnO3AK9BW191EKhKa4G47e9iv2MG8FpkBoai/XgRglFSxaMmPBKqn9QEeDkppGTDry9kWoPUmo2W2Ssm1b8xrKcHRAqFkATQWGpjuSb/PpFAUn2Kjm8X/+85+DlytDYc/tNFH0ScaAqaBh57oTjLu1mRwTOW5tnQIdfqHsA5qhvyr/QL0FCxVapyRSCDwADqKzej6grXYn8ivLMnrN3e3kLpnc3SZAt6BuwcvT/HaB61khYBggA5sG3qETs8ju89RkVTiM0kcTBphEV1UstZpRl1VeNFo56QgtClsTSS1nVZQJVdeXvNBZ1Eo3fZhRFuWxKP0graDFrda4E6ZLVpVRr4MqdMehYe1KOYeICdbGByMmwJV79ekN6apNqxjLSjQDrpiKzb5OE/qHz9X5sbL3XVY0ljeoimYDY7er+ILYNYbCLvgO6mamoGrodH9L74AlAFoFgBLU8YcCi5oUoIBliGx/bwVMVdjtDzTq3rIGNLvLkVilMqxWMnrHyWbJ/wBtr0r3H4zrAYtWzirHq/4Jssq3Rlw3qzzQbENCJDBceVVSuW1pTg9VhzDuVN/t/jPJt4Z1oBlSo2Hfs1qQN7AZ5MiZhgDoV6SV+7ZmDxUuA1yRB5lLvjU2Hskl3wAbK3LJB8WGmjuy9/zxH4J8J3/c8LuCBwQ3lEA+2KYPjJzdd8b41qB+JHkZMtvBHHG8Wxs9VAnBcFZzLPaQF94zaOsC6w0SwYej4NWFdC+p30+QX+tTv4FB2nCu92BoByZ9Hml69+a4qVvXq9CHPZHuYPLMVyD8ksK9CZblFO61hC3ncK/dug8khxsIff1U2URbt7cem9321oAm4gNcO5jMNFUlhHQqni/o1MEY7GzmOi84lLVJwIUJenYHc/EAPRzO1qPwebOhc3AIVDUX6k2gaXV0pt9dXsTPElcKu1lAL2wDMt6Gk5lqxMA9nrmLu8CRY2GLbzOeGg5LavCC6MPPGUudVluuuW9OslwFETswGfrQ8JvOfNuZHSvx+GhLI8E8jxsBhzHBzdI726whTM9VPfDUK/TA79DY07rgwT0Kh2/3tjWvYsPAb4HCtiDHGjwDYrChJqqaeXX/iXd4P0iHWh+YsExPCwLPcn2bREeEqrYOL66uuZbheH5gs+uAaAneIS3dcwOT/9uDDQ4jTd0Gv7CBaP06l3sgcRvYj0ASH27YjBpvbShcv+RzPg4OcI69d8CpVHbJN7RHW6OjTBNd0Ukf5vO75CbBf67kiRMHB3LXdDSgvB6Guq2Jxo/9A95cR7H1ZJoPKLuueo/V9cHzgDU3GOnCJY8qBP3nbCaYhm93cAQU6Qw1fQpGkRr9P6aZ3rtBUrBvJKlq9PP2MirNxi0LCNLtFkeqBv+sHVcAioAo9m5RBLiCn7us6yLJtvaNJNUD/MJHLRR5+r5RpFokf4pipqQe2EzaEhxHFdIQWHPsthJhub7ahcgEpwcMVs6mYu09MDjxxNftwHOdwHPcCOm66VqmG+JjthWHnqdPrDieOFPLQOq1KAomhu6409CzJpHu+zrCeEQx0o2JGQSRZfafQPoDzvpOoYwPBCltsDqsj7EYcHWYgpsriZVIb4Yb1PT6KFCU3/JGDGyganLLBirhs9gc11/IdUs292mConBJJysl7DjiVYb4hYnlqk/CEjnEMgvT67zAx+b1o8S4qOphwcYsoaLIi2Ocv7o1nRi+8SiZWKI+YTdkoib90Im9MRLTQqXBvBhj5A/tolDC7rVnuX06riqIA6D4pI/tE0Siasy9IHFbk9xxgOYmu0Siau2JbjojaTRv7STk/U3IJO2yRig46rouHidnZCRJZSbXnJcRuyH9IibpxUeiaPVAClbdeXWdh96AmgEOplgBZYBXMzbKtNPaS+kYQJok1ZTAJx/HVJXG+KjnK8o/l9Szj3fn9Bj63QyhrhkGgHFQX+tjjCmMcTWY1U9niJij+/GWED8/qxsK3oF4MNzFwRwM8aoR9Xs433/Ed2yK2Ryi6BYokN4xj0A2DR3vSgEmb4FMshEIhreUYagGBIjDn1/adYkewiNI833gEc5yOKraE5Fw1iSZ/SX90vsMVq6FPjoBQKire04cw9ZPN/fJ8ToU8rQ0MFgUqNoylZpQAsOfXBZ0j18wH8dveGuELtvQZbXSQQU19MrmeZZE4ONQFkYVRVcYU79MkVM4l8vFgnZjCidJmlTkk3DV8PrTMGPlvvGS7v7lP8ukwEgnH1G0LNg1N1kyZQbDPKcDvfMI0WnaRT6h5cH4TNGpMyE3TwkBUopN6flpMilCSlD4ExY+dCEppZWb5I4oG+UMFckUy2A3nBNJlk3KRc0LR9VvrA+NEtAsYA/gcJqFGpw6zl6G2295nbaFUOHWUPENGBVqCOqZoiIAUoh2iwo11PSarLfl8X4WMqvus1pHagHFEJrlPRhuTNXt8YIbtnVAhupucQN0picrnmeIKTXPES0O1Cdwt2hR3QeMZZaTlCDl2XKMD9VL7RY1qrviuUqzTvPUwNo3bix1p/mCipKkr1unQC/mq/v3JKhyRmcYgGfQ30HL7uRDUpKWfeo9Wer3mpvy3PBt7vohj26qunW1I9SvA6awRzq8bh/Q6dS32h6oc0K22HC9elUx/fx69W6Pyc7wAMPwA1VwQJE5o482KTAmASf0CyYfw2Sg8mQAFZ2DuLR0rYcZNjA2VT8iK7gT0pMUoZ+UYZWXs2SNDB9JkfmUle+w0QGbXHJk/fn7pg2gXgssnzVV0ggGk9dAd7IXLt8gR1V/HJMgkw+HSdX1JnXlreS6RWm0Rv59cofyu9t8AsUNVlxeJ+lgMiAAWykA3mfrRIa10SXsQ5lcs6s+XXx788cF+/Du9PIdjejptS+e3i+MY9JlqD5Ib80uefu/P04/fHn7+f35X+zA2bu3Z79dvv+vupZL9M8SschDtpxPCA0+d/nVySWzfEtNCATllyFC2v2TvermfBFgmwgw93FUwlrKYKi0VVv1NSvBHjVZW+urtq+TaracaFE+x18m4mL5U0ok3fk8LCk5nMd5hP8lKRKlNo9/iA52mSbROx3YnbDFGKp83mmtBTDs9Ypg4bmhZmx3dAws6lSjcKchJaAo/QO6Rtn2fLObRivDo8QGHHy7RYlqpb9vEmefC166Y+xBVjGHaiIGIwYYWvWjYuyYNQ1AjLn7FmNqGcnVLMmu65HRMfmH1nCBOuRz5SkAbzvmKaDV1w/y1E7TS3bAU9a+eUr1I/1viUq4xf2z4RgAKzvmGNUp9KMcs9NKuB1wjL5vjlnZAk8vSWr3s2UaADG7ZRpRD9AD0xy1v09lmrpUZl9M46jOgXNW7cddec+WbSDU7JhtVO/AMeT+7oBr7H1zjeok+IxI9QStGLsFG68+G74BkLNjvlE9BTR9TtO0ly1nbBr7Zh7VWyD0tKaJAGkYw5q8/AjWfhpeAnC1Y14CPAS0TnZCJu2tqi9npbTv3rxhpeITGoDOaLVYSJ+5LFFRisvqC6ZL+iO9dTQLk4z0D2KPI9gjp9EC3Fl4u+aiek0RKd+Lm1OyPEYlueWfs4d6PWIFbF1V827sXqJKnnUgKtmDS0oVIvTZtDQKpywkSlprPIj74L/zJKPrYHePk+k0iZZp1TRRws/KaM1cKF11l7AXI8dnGNX01mUuPSeTziY9lVuXLApS1Ep+mS/yskwmVKuj7jjocT/gRT3mYJCpd6ZkeEDgAexQbPTReP/h4stv4e/R13v05tR7c6UHp5M/6tTiPVU31wXMe65uBouWRcRUrm4+z758/Xr3j3l5P/57evXf22J86465f6bn4ma1erlLP4ZtmVrgOo7hmbZhCeNB3JGtm9+koZNti6YNv5vY6vGUglXTNoxAKWnc+gqbp66ChdkbrNHvjoBl6Fag8XiNN/5akKHE0ulYWsw+YslOzvj/
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
May 31, 2022, 06:42:55 AM
#15
From this link https://github.com/bitcoin/bitcoin/blob/master/doc/files.md it seems like the blk files store blocks informations and indexes/txindex/ stores the transactions index so with of the 2 have the full transaction informations?? Using this method are some informations duplicated??

There's no duplicate. Currently blocks folder is about 434GB while txindex folder only about 35.3GB. txindex utilize LevelDB (which is key/value database) to store these information.

't' + 32-byte transaction hash -> transaction index record. These are optional and only exist if 'txindex' is enabled (see above). Each record stores:

    Which block file number the transaction is stored in.
    Which offset into that file the block the transaction is part of is stored at.
    The offset from the start of that block to the position where that transaction itself is stored.
newbie
Activity: 8
Merit: 52
May 30, 2022, 10:18:37 AM
#14
I can't resolve the error and now i don't have time. i will upload it in the future.
In the meaning time can someone help me to undestand how files are stored in the bitcoin folder?
From this link https://github.com/bitcoin/bitcoin/blob/master/doc/files.md it seems like the blk files store blocks informations and indexes/txindex/ stores the transactions index so with of the 2 have the full transaction informations?? Using this method are some informations duplicated??
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
May 30, 2022, 07:09:41 AM
#13
I also pasted the image here. If you zoom in you can see it here in the forum.

I had poor experience by zooming in forum page, i'd recommend to open the image on new tab instead.

I GET SUSPICIOUS LINK ERROR, HOW I CAN SOLVE THIS?

You could try using different website or evade forum system such as replacing . with [dot]. An example,

Code:
viewer[dot]diagrams[dot]net
newbie
Activity: 8
Merit: 52
May 30, 2022, 05:42:32 AM
#12
UPDATE
Hi to all and thanks for the replies!!
We are becoming numerous!
This is the link with the new update. I've a lot of information thanks to the link https://learnmeabitcoin.com/
I think i'm at a pretty good point of understand how the bitcoin works.
Now i need to understand better what's in the bitcoin folder files

I GET SUSPICIOUS LINK ERROR, HOW I CAN SOLVE THIS?

https[Suspicious link removed]ehN6BmgIMpVkAZ4NWMjTLttPZSOgaQJkk1JfDJxzFVpTE%2B6vmK8s8l9ezj3Tk9hn43Q6hrhgFgHNTX%2BhhjCmNcDWb10xki5uje3BLi52d1Q8E7EA%2BGuziYgyFeNaL%2BCOe9RHyfyCRiNocougUKpPfMI5BNQ8e7UoDJWyCTbASC4S1lGKoBAeLw55d2XaKH8AjSfB94hLMcjqr2RCScNUlmf0m%2F9D6DlWuhGycACHX1mRPHsPXTzX1yvA6FPC0NDBYFqrZMpSaUwPCVy4Lu8Qvm4%2Fgdb43QZVu6rFY6qKCGXtk8z5IIfBzKwqii6Apj6pcpcgrncrlY0G5M4SRJk4p8Eq4aXn8aZqzcN17S3b%2F8e5kUGOnkI4qWBbvmJkumzGCY53Sgdx4hOk27yCe0PBifKTp1JuTmKSFASrEpPT9NJkVICQp%2FwvKILiSltHKT3BFlo5yhIpliGeyGcyLJskm5qHnh2PuN7axRApoF7AEcTrNQg1M%2FTS%2FDDVtep20hVLg1VHwDRoUagnqhqAiAFKL9okINNb0m6215vF%2BEzKr7rNaRWkAxhGZ5D4YbU3V7%2FMIN2zogQ3W%2FuAE605MVzzPElJqXiBYH6hO4X7So7gPGMstJSpDyYjnGh%2Bql9osa1V3xUqVZp3lqYD03bix1p%2FmCipKkr1unQC%2Fmq%2Fv3JKhyRmcYgGfQ30HL7uRDUpKWfeo9Wer3mpvy3PBd7vohj26qunW1I9SvA6aw3Tu8bgjodOpbbQ%2FUOSFbbLhevaqY%2FtWrdzMmO8MDDMMPVMEBReaMPtqkwJgEnNC%2FMLkJk4HKkwFUdA7i0tK1HmbYwNhU%2FYis4E5IT1KEflKGVV7OkjUyfCRF5lNWvsNGB2xzyZH15%2B%2BbNoB6LbB81lRJIxhMXgPdyX5x%2BRY5qvpmTIJMPhwmVdeb1JW3kusWpdEa%2BY%2FJHcrvbvMJFDdYcXmdpIPJgMBwpQB4n60TGdZWl7APZXLNrvp08f3Nnxfsw7vTy3c0oqfXvnh6vzCOSZeh%2BiC9Nbvk7X%2F%2FPP3w5e3n9%2Bd%2FsQNn796e%2FX75%2Fj%2FqWi7R30vEIg%2FZcj4hNPjS5Vcnl8zyLTUhEJRfhghp90%2F2qpvzlwDbRoC5m1EJaymDodJWbdXXrAR71GRtra%2Favk6q2XKiRfkcf5mIi%2BVPKZF05%2FOwpORwHucR%2FpekSJTaPH4UHewzTaJ3OrA7YYsxVPm811oLYNjrFcHCS0PN2O7oGFjUqUbhXkNKQFH6B3SNst35Zj%2BNVoZHiQ04%2BPaLEtVKf98kzr4UvHTH2IOsYg7VRAxGDDC06rFi7Jg1DUCMuc8txtQykqtZkl3XI6Nj8g%2Bt4QJ1yJfKUwDe9sxTQKuvR%2FLUXtNL9sBT1nPzlOpH%2Bu8SlXCL%2BxfDMQBW9swxqlPosRyz10q4PXCM%2Ftwcs7IFnl6S1O4XyzQAYvbLNKIeoAemOWp%2Fn8o0danMczGNozoHzlm1H3flvVi2gVCzZ7ZRvQPHkPu7B66xn5trVCfBZ0SqJ2jF2C3YePXF8A2AnD3zjeopoOlzmqb92nLGpvHczKN6C4Se1jQRIA1jWJOXx2Dtp%2BElAFd75iXAQ0DrZCdk0t6q%2BnJWSvvuzRtWKj6hAeiMVouF9JnLEhWluKy%2BYLqkP9JbR7MwyUj%2FIPY4gj1yGi3AnYW3ay6q1xSR8r24OSXLY1SSW36dPdTrEStg66qad2P3ElXyrANRyR5cUqoQoc%2BmpVE4ZSFR0lrjQdwH%2F50nGV0Hu3ucTKdJtEyrpokSflZGa%2BZC6aq7hL0YOT7DqKa3LnPpOZl0Nump3LpkUZCiVvLLfJGXZTKhWh11x0GPe4QX9ZiDQabemZLhAYEHsEOx8YjG%2B%2FhrQWapNr%2F9B7%2Fk7CMmSHLG%2Fwc%3D
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
May 24, 2022, 07:18:46 AM
#11

I created an online link of your work. Anyone can see it here:

Link

I also pasted the image here. If you zoom in you can see it here in the forum.

full member
Activity: 206
Merit: 447
May 22, 2022, 06:19:53 AM
#10
Additionally the new difficulty is constrained to be between [1/4, 4] times the old one. And cannot be less than 1.
new_difficulty = max(1, old_difficulty * min(4, max(1/4, (20160 / time_elapsed_for_last_2015_blocks))))

In the source actually the new target is calculated, which might give slightly different result than above formula due to rounding.

And that's done with 256-bit integers, or with proper doubles?

The rounding error shouldn't be that large if the difficulty is stored as an int with 256 bits, as the effect that the lowest bits of the difficulty have on the total hashrate at any given time is negligible.


Looked again and remembered, that the target is always represented as a "compact" number (32 bits, similar to float), so double should have enough bits. Possibly double arithmetic should be done in specific rounding modes though.

Then again - compact representation has only 23 significant bits, plus 8 bits exponent (and one sign bit). Instead of being power of 2, the exponent is power of 256. So things still might differ. Even more than I expected.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
May 22, 2022, 03:41:11 AM
#9
Additionally the new difficulty is constrained to be between [1/4, 4] times the old one. And cannot be less than 1.
new_difficulty = max(1, old_difficulty * min(4, max(1/4, (20160 / time_elapsed_for_last_2015_blocks))))

In the source actually the new target is calculated, which might give slightly different result than above formula due to rounding.

And that's done with 256-bit integers, or with proper doubles?

The rounding error shouldn't be that large if the difficulty is stored as an int with 256 bits, as the effect that the lowest bits of the difficulty have on the total hashrate at any given time is negligible.
full member
Activity: 206
Merit: 447
May 22, 2022, 02:23:18 AM
#8
The actual formula is new_difficulty = old_difficulty * (20160 / time_elapsed_for_last_2015_blocks). 2015 blocks is a bug that will probably never be fixed.
Additionally the new difficulty is constrained to be between [1/4, 4] times the old one. And cannot be less than 1.
new_difficulty = max(1, old_difficulty * min(4, max(1/4, (20160 / time_elapsed_for_last_2015_blocks))))

In the source actually the new target is calculated, which might give slightly different result than above formula due to rounding.
legendary
Activity: 4466
Merit: 3391
May 20, 2022, 06:20:29 PM
#7
Thank you all for your response and for your help

I've updated the chart with your help and other new informations that i've found online
Now it looks like this ...

Private key: the example generation of the private key is inappropriate. I would remove it or replace it with an actual method - random generation or deterministic generation using BIP-32.

Seed: I would label this "Seed Phrase" to be more accurate. The seed phrase is used to generate a wallets private keys using BIP-32. Note that a wallet using a seed phrase can have an unlimited number of private keys, and a wallet typically does not have a single private key. A seed phrase can be used to restore a wallet because the seed phrase always generates the same private keys.

Mining reward: The mining reward (aka "block reward") consists of the subsidy, which starts at 50 BTC and is halved every 210000 blocks, plus transaction fees. Eventually the subsidy will be 0 due to the halvings and miners will only get transaction fees.

Block: What you have listed as a block is really just the block "header" that contains information about the block. The block also contains the transactions.

How is this [seed phrase] generated? The seed phrase is an encoding of 128 or 256 random bits. See BIP-39.

Will the miner check if a transaction received is valid right? How? Miners validate all transactions before placing them in a block. Nodes validate transactions and blocks when they are received and only propagate the valid ones.

How it solve the double spending problem?? Does he check the balance before the transaction?? A transaction that spends a previously spent output is considered to be invalid and will be rejected by nodes and miners and will not be placed in a block. Note: balances are not tracked except by a wallet.

How this peer will confirm the received block? A peer receiving a block or transaction does not confirm its validity with the sender. It simply discards invalid blocks and transactions. A receiver may disconnect from a sender that sends too many invalid blocks and transactions.

How this peer will remove the transaction in the received block from his UTXO list? The node simply scans the block and removes the spent UTXOs from its UTXO list and adds the new UTXOs to its UTXO list. It also removes transactions in the block from its mempool.

How i can know if a transaction is mine or from another peer? The wallet keeps track of its own transactions.

is the Address convertible to pubKey? No, but spending a UTXO requires a signature that contains the pubkey.

How i  can get the wallet balance from here? The wallet keeps track of all transactions involving the addresses (and private keys) that it controls. That's how it maintains the balance.

How this are choosen?? ... The wallet keeps track of all the UTXOs associated with the addresses it controls. It decides which are the best to spend from.

Why is a list?? It could be just 1 for the payment and one for the change right??  With a list, a transaction can send to any number of addresses all at once. That's more effective than one transaction for each address.

Examples?? You can find transaction details and examples here: https://developer.bitcoin.org/reference/transactions.html

This might also clear up some confusion: https://bitcointalksearch.org/topic/important-terms-that-are-frequently-confused-5163864
legendary
Activity: 4466
Merit: 3391
May 20, 2022, 05:21:33 PM
#6
Please pardon my pedantic pickiness. Some minor corrections...
  • Today, most wallets are so-called HD Wallets, so there is a single 64-byte secret ('seed') which is then often encoded in 12 or 24 words to back it up. From this seed you derive as many private keys as needed using HMAC and the corresponding public.

The "seed" is generated from the seed/recovery/mnemonic phrase, and not the other way around. It's a common minor misconception. The phrase is generated by "encoding" entropy, but the entropy is then discarded.

  • The difficulty formula: difficulty = difficulty * (20160 / time_elapsed_for_last_2016_blocks)

The actual formula is new_difficulty = old_difficulty * (20160 / time_elapsed_for_last_2015_blocks). 2015 blocks is a bug that will probably never be fixed.
newbie
Activity: 8
Merit: 52
May 16, 2022, 06:00:55 AM
#5
UPDATE

THIS IS SPLITTED BECAUSE THERE IS A LIMIT OF CHARACTERS FOR ONE POST

PART 2

Code:

          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
              
              
              
              
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

      
    
  

newbie
Activity: 8
Merit: 52
May 16, 2022, 05:52:30 AM
#4
Thank you all for your response and for your help

I've updated the chart with your help and other new informations that i've found online
Now it looks like this

UPDATE

THIS IS SPLITTED BECAUSE THERE IS A LIMIT OF CHARACTERS FOR ONE POST

PART 1

Code:


  
    
      
        
        
        
          
        

        
          
            
              
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
              
              
            

          

        

        
          
            
              
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
              
              
              
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
            
          

        

        
          
            
          

        

        
          
        

        
          
        

        
          
            
              
            

          

        

        
          
            
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
            
              
              
            

          

        

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
May 12, 2022, 10:56:59 PM
#3
Hi to all i'm new here and i'm tring to learn how Bitcoin and other cryptocurrecies works. I started to understand the base of how it work by searching on Google. After that i decided to go more deep for learn how the code work (i'm a developer) and i downloaded the current version of Bitcoin. It was incomprehensible for me beacuse it's written in C++ and i don't know that language but with after a little bit i started to understand how it work, the communication, the mining, the math behind ecc...

As you learn more C++ and discover the dependencies of the Bitcoin Software, you will also find that there are some auxillary libraries that take care fo important BTC functions, for eample:

- ZeroMQ is used for sending messages between peer nodes
- Libevent implements the RPC calls
- Libsecp256k1 is a highly efficient custom curve library used to generate public keys and the like
- Bitcoin Core has it's own internal locking system (that even has a debug mode so that you can detect double locks and stuff like that). It's useful for ripping out and putting in other software. Ditto for the argument parser and config file parser, which is actually implemented as one module.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
May 12, 2022, 09:39:51 PM
#2
Flow charts are nice! A few clarifications that you can add:
  • Today, most wallets are so-called HD Wallets, so there is a single 64-byte secret ('seed') which is then often encoded in 12 or 24 words to back it up. From this seed you derive as many private keys as needed using HMAC and the corresponding public.
  • For addresses, there are different types as described here, but the P2PKH locking script uses a hash160 (SHA256 + RIPEMD160). So you can go from public key to address but not the other way round; that's a security feature.
  • A blkxxx.dat file doesn't only include a single block but multiples.
  • In the merkle tree, as we can read here, two nodes are just concatenated and then the hash of this is computed to go one step up towards the root.
  • Transactions are chosen by miners depending on the fees (usually - this is the most logical thing); so the ones with the highest fee are mined first. But the miner could also select differently if he wants.
  • For transaction inputs, you don't need to add all of them, just enough to satisfy the 'output amount' (or a little more). You'll then get the change back.
  • The difficulty algorithm is basically every 2 weeks. But it's counted in blocks; 2016 to be exact. https://learnmeabitcoin.com/beginners/difficulty
  • The difficulty formula: difficulty = difficulty * (20160 / time_elapsed_for_last_2016_blocks)
  • To hash a block, you just concatenate all fields (bytes, not as strings) and hash the whole packet.

Other than the https://learnmeabitcoin.com website I linked, I recommend https://en.bitcoin.it/wiki/Main_Page and https://github.com/bitcoinbook/bitcoinbook/.

For very implementation-specific stuff you can also refer directly to the source: https://github.com/bitcoin/bitcoin
newbie
Activity: 8
Merit: 52
May 12, 2022, 10:05:47 AM
#1
Hi to all i'm new here and i'm tring to learn how Bitcoin and other cryptocurrecies works. I started to understand the base of how it work by searching on Google. After that i decided to go more deep for learn how the code work (i'm a developer) and i downloaded the current version of Bitcoin. It was incomprehensible for me beacuse it's written in C++ and i don't know that language but with after a little bit i started to understand how it work, the communication, the mining, the math behind ecc...
Now i think i have a pretty good base but the things to remember started to be a lot. So i decided to write them in a scheme for visualize it and have all the pieces togheter. After a little bit of work i made a Chart with all the informations that i know, the things that i need to go a little bit more deep and the things that i don't understand well.
So i decided to come here for get help to complete it and maybe this could be helpful for new people that want to understand how cryptos works.

The chart is this:
(This is the code generated by draw.io, you just need to copy it, put it in a .XML file, open draw.io and import it. Unfortunetly i can't attach file to this post. I think i can create a file and share it here for work all on the same file. I will try)

SOMETIMES I WILL POST HERE THE NEW CODE WITH THE NEW UPDATES

Be free to edit it as you want.

My legenda:
Red = Things that i need to understand better
Orange = Notes
Yellow = Todo things (study better, find more things online)
() = Example, now is a really simple example but i want to put some working informations for check if what i understand it's right, so it's a try with real values)

Thanks to all for your help


Code:


  
    
      
        
        
        
          
        

        
          
            
              
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
            
          

        

        
          
            
          

        

        
          
        

        
          
        

        
          
        

        
          
            
              
            

          

        

        
          
            
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
            
            
              
              
            

          

        

        
          
        

        
          
        

        
          
        

        
          
        

        
          
        

      

    

  


Jump to: