Bitcoin Forum
April 27, 2024, 08:03:45 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: July 05, 2022, 10:46:42 AM
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:
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2022-07-05T10:47:13.928Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" etag="xjQwXBw5WwGBU02PWuNq" version="20.0.4" type="device"><diagram id="4KwzXGMXcMT0csuQZ-j6" name="Page-1">7X1ZV9vI1vZvORdeTd61rKXSrEuGcEJ3Bk4g6XTfZGkoYzWy5Egyhr74fvtXo1RSlY0N8oAh5zQYWUOp9lC79vDsgXk6uf9vEUzHn/IYpgNDj+8H5tnAMICtWy76jQ890EOe6/n0yE2RxOy05sBV8i9kB3V2dJbEsGydWOV5WiXT9sEozzIYVa1jQVHk8/ZpozxtP3Ua3EDpwFUUpPLRP5O4GrPXMNzm+AeY3Iz5k4HD3m8S8JPZm5TjIM7nwiHz/cA8LfK8op8m96cwxdPH54Ved77g23pgBcyqVS745/ev3sUP4+ZX7I7SoPAKcKUPHYPe5i5IZ+yN2WirBz4FRT7LYojvog/Mk/k4qeDVNIjwt3NEdnRsXE1S9BdAH0dJmp7maV6gv7M8Qyed3BRBnKBBdg6Xt7CKxuyuk/wuCMkD8V8FLJN/hb/lV2VvfweLCt4Lh9ir/xfmE1gVD+gU9u3QshgdGCcOPfb3vCGrZfODY4Gmtq6zowFjppv69s18ow9syteYftt/fPpv0PxPV5+BWhTY/LW4TTUzBujMjOG78tQA11FMjWf2MDNzt3xwiy9jZ5L97uhONQb/Xg0d98kzs3ymnz5fq8yGpgv/wPPn5uNkfPcL/Pr3x+cLM/99an3982QyBLr35MlZPtnPZia7zUrWOpzU99wp+YBr4x0oPJkYj1D3ceW2P9MKpGn9BItbNKOGfl1A+ivIyiCqkjwrpSlHL1q157WsivwWdqZQMdlBmtxk6M8IzSpEx0/wtCVoAT9mX0ySOMaPURKyTeoNUIh961i6ZnueYdqGbwFEq7aYAM2WFyPX04QLLMeSydtc2D9FZcvg+gdYIitgPVmJ4SiYpdVWxYV/255925aVlKmrhGlTZoBhKuZ6mV56OXPtAFvzXFfnzG/u29Rbiqk3D2LqfctBut+q597bt6m3D3bqgWniuV+g7vdg6h1p6j8cX334iTT8oSgekygecQFtL7l62zDSnR2TxJTX20MjCQBmx6TZc5IslRKkq65/WAdBGMcAGqZHvVS06AIcmRD2pgih3J+68n73egzxC6DJwIMIyjGacuwavBlDvA0w9FmZZDfoN76uSiawxL/H+OyrD8eG7eCL05u8SKrxpD8iDgxzNIJOFEk7GPRN7Pqhvtl9hukgrddZ6E1PIp+hIp/VA/m+f793quH78PSfTwYEE7348Pu5SrVdYNdCkOGfYxjd4juM8KPJgTwvIf6qanaM+ARMwYQcH5PPFdlXrrmRFMmwiHAvY0tp+m31CRSuFpU709kYmWVT+oJSK7slv4NqgD3wBaF9Gs3SoIK1VFZ5FeBHhEEaZBE+knOOmAdpCvG1SSUwTJ7V1367/vEF/YqDKgiDEhLRTutvgzguYFk2Q5g8tG5aksko8yhB46FaBP04YlzGrib6g2qb2yyfk+en+D4h/jHBx0t8WfLbpH4wOwNr7/rZ7OL2OwcTxDMVf2XE/DEZxwRd+cDHQwZdD+adNjAcsliEaDqdG/zpKudiROcY3geTKfHAJOR9yRPIvfATuvdvTzT6L4N0Mui46YALGMHkjujX+twbmMGCUpIINBsjGqCOyT+dVY3INqRIGupd338h5yAhqchN4maI9AwyUHzDD8L81wMjv4Q7l/Wck+mUyUgJVf1WttgtyaICEu55tSoFPKpR6miWqFHqE3tXKZbsVrzKZwWem2NZAMZVhaOCx/iZxnkKgyKbwCBMqihPMi3KkWSeVzAaZ3ji8XiIh3JIQnCvzSFpGp5kKLgKQ8FVeB37CPr88/3vj98ezJN/H95/n17G+j//WuOhitqLdBrRDA76C01TFpZTMltdjvjK9NVxWzuA42MF+8hHLshkkHGHRR7EUVBWTFW2bZNRgZmrs7AcXc7CNImwxkJq1jyn/3/HFW5rccLK7c8xbJRimOZklQsENdh+Jh8Y/ibKs1FSTOiq8dBSa+y0GHLtph8lzeECTvK7ZhHO4Jwo5IuMqm32XmxI9J7v6lFRzSo9qlGk+tFYOD4O7qgyL2qt/+4VK1vDfNx+U4V0etG26eSL8SX9cBKOx8b58b/v//l+c6p0+WNOXWystQ0Xbk/UhtusJKYCMdtKau6Lhhkz2ygzIZaJO9/ns4pZD63QkcJYo+c3Owf24KMPxFIg+iNpOJDbClQeiaHCzxhh4rPRc7uEPYGYGezGi6WyY4dkObsqHjCbJ8geyEf6Zgm9hE+S8DIde1hh753UgkdopR+nKRnydf6NjnLIDxJxPkeyTL/Yc5Eb5VnFEoGAsVl7x7Ctx2TQ4M5bUQZBH0ugUgZN2dWBt89om1HB9cOmiESeEZqOI5MutqEXWy+WdAr7xQJyEFWlQDdHOzmb5412Sj9wN01k15Tjrq83yq2SxuA3/9ra09seGdUOe12iFYxv4BX7My+qcX6TZ0H6vjnamcvmnI95PmXk/QdW1QOb4WCGFukW8eF9Uv3Al2s2++svdjP8+exe/OPhiWZlyXa9C1+d225VUNzAZYlwPPSHJ2YpyQuITD60eRJOUpOMXHpcFMGDcMIUbbmrUrjzJT4g6ACnExM1O9mrnfOt5eejD3QEDfPUr/IMfrJ3wk8ZGrXAUPjPv8TvGpYifz0IDLZ7PjRfFh+6L4IP5ayILfBh/7xhrcgbPGDUH288b1mRo7x7rAb6J5v9Qsnmvm6yOauSbT80cVezmo9oYs8Fy87fkCb2XjVPcQl/KTwFDN/af6ayd6OonmAuNowosqHAlSszIliR46xVFx+j98XnSRxnu+09scl3wIs4ztBN/ZlXWPo2uNSRk9S5Txo7IFr86/ya5fyLYUk48BidYHnTexpoY99zV/YlJA7rT0E0Tkjk/uhjHgXpO/4ANGD6DB6pW9Mjs51oreCHsbxlXL+6w8XteMpUVYu2r/BQ+5vyscgxWokaa9VP9TBJwzrzkDuiDHmWLJUnCujGpubJkObpTxYY3kve7YMMbqfWrL2U1jETkSiq+ObGvIMSRS6L5I6GNf8ggcsjy3cd23dtJ4K6bjhIFQe65VtmHLiuHppxHNojE0AY+SHQbWcUuGYY6Z6nQ9uyYQzlePZamaQbkQXHUBWXKYsFNzXzcmJgnRpBJr4b2TzSLdeJg5FtWSA07NhHcuo5DnB9M0JfAGcU2o4zAqEOLGC4ph9bwNX12HGiOPDl+4Whj+4GAt1Bd3JHozgwDfS3EZuRDQ3HC0DsBbrrhy7QgTsKzVE0GkWxaXvoIt8KIteE4TNpiw0wuhJSgw2RdJQSPIC7pExIee1G6G9YK9O/l6im2nZYoWB5a1W3a8+p5TsdmdJlVYY2USpl5mxMnXGgiWfYY4aF7LEVjLGvcJJX8IVZYz0Q3tY7wqQoZzc8RYbcxojuymZF74LUi8T4RltiFCVvoC5Hby1CfZQhKOfOk5ehdQUGeCqBOcG5eqfjAOf3vDYJsXS7TWhLXmyAqtrE3FThOpfRZSJSjoMp/jhK4f0xRgkiHouYfTyL0qAsk0jtL+GfBc/H4/6SITaNa3cdu9R5zG1C/rqERTIhRU30IOUUDkZEeSco+MbTkXipqSvjJDF0ftGf0hE+BY/pAtFxc559//Fj/su4uh/+Pbr+710xvHOGYNVAIFdpjzpuWuVnMkPxY+v5d2TvigtMzUfGv2f4+Ifntvkb2VcqJAf+ADov7J5LnDjAsLp2ekfv0YmT7vQEd46ypg4oqq/HHZyOQSfLuM6vJEUvrDYD2QhF2T7WSY6GQv2L6gSalvkc47qPErz1fTN6m4Kmp1rkVIZ2HyVYSqIq6iU+wIKXAFH6DerCJJ7zDWm5UZsotFAISVI5as7lGbkvjlZd9K99oJVsylEBnNZeiVvilSCJxLzKKuaShjOUEcFikqA/y5JfM8hvhjOajzENm2qJKJ+lMZVjYsh8Oj7FJ9XJygPjBJ81K8gcG/oZehSumq2/urhszif3H9Ey25ZY01dpKw2YRXmMP/CC3JWLcPctL7kHNgSur/n+wvw5pavG3JSrRg0FJi8LH1i5HeHDKd0cqstHOgW7TTULqxskHMgKW1hpCb0rqwRIk7LCWfkrlObwI+WUlBXIljvmniEj/zE5A5cXqoIPa28CjAVRDCq+GWX3MkGih0mPCx+a4vN2XQ+dv+bbckrFD89H2UxSUnUnid8giOPmalq9w6+tctWVpNqBXJ+SMkhhBO0ii0SuRWqNZgIn0zxPtYVbnvowJdGCndALWDrcjhPAWrXS2ugDN1ItpQpkisVSyqrDFkvjMpF7tlRsVHaPm5elb0XXmEDgWlI32NZMcQ6b4pxmdihjozlN4qSiOw5E31o2cVl2UctPLd9xgiS8iKnMkIv5w8taTEXZIqtnQwU8uknAb8RQbGtZC+oHN2st/psKOKkL5wVFqz16gVSu5rZ4gcJqqFy1SmHto6xOKayeDGV6hRmasmqrxLJr+rGjYh1pZ0tWQGYUMl7FDEOL3+c0b6Exr3AdX0rOfX96dkXkCkZTZIXdgoa5ZgzpgJiPaZpMK/JkZBmSdZ5W4d5AERKgxN4FXFaKrzm5Pm3UEIPsiNJZ3BTA5WiNK8uUrEdhERQPpALvun0zZK/G9UuSy6J8MiUV/PhGR1Qj1G+tG++4pM+y5Wda7+hrTAK6FjbLXOdKeo78nkmz4HbJNZlVyTRN+OX1ecx4p8qHZJBocu3ya7d+DctczfbtJUylhBtYjjbQolcba2A+n2t5AREZHhjOAONt9OkuwWbZ+SQoEQ2QzA8ZIMHQwPr53Hc9YPnAty0Tpw6dR2Pd0gjVn6V9eyDX0OjkMgFdFcJXkmhjiBDypvlThkzYjGip6bggdedSPBlmAVlVcZHxA1W61KqZTekiHoRJStf8KKdrck5La4OMgtjGM2JMlL9mCdojp1R5zgp6zW2WjKiOYNuhPIJEgxZ5SG2MWVEFtPw3wTdPsW8P3yNPyfk1t+BPiEBkIClR4LfJHPtuyjFintFoDxMMTHf1ALPl9oFXq4YKWeBNmTTsQYFgBm1nCttOkZr1eV7EAk4QrVgPqfNCXGTLfAI7a2tFN1Oce9TrA4NNoFXodBENg+i2Pp9CR9DlsFlAg84ogcGfhwsq6kGHMApmxL1HrmIwCzAoH5rhoU1bSEvys5K+fl2rjzHUmjfMZuxEOmQ0qop4eV/BIrUSe6sXpg2ytxIBbyDhDXS5m3vkGEeTcxqbsW17tq1MET+P8UbN7/guR18vLt+ffSI+U8YltU+PYXyR5yy6P7vnsiGIKAsnSLHbXkfoOs/BLz9K7qlYw+yGGsTkJqIYYIYpkFnIhLEcv1u8RRWwYDoaYY4GARmlsS0tX3H5xwf6joReej1fR3SeMDzMH/DhHTF/Vx4BpTL13dT2fLMvPstnYQrr6W22y9Q4xgNCI1CASXB/biITDi+aAb1rbQQzNSFTRXFrxcPqSTk5vnpve0d0qlaig6gZZ6Vgat9COK3HXD4g/TZp1GCjiRs1CZFSIExB/dytN8esRN1pnahIR+jEvViM1mfI/OcMxCxh0GJcNMWdGdIL4zzm31JfRIHHRLPBXoOqXbofcBQ7d6XarSO/ve/cFbjsS+yv7SQ7g9q25guUpbDKlRNlu+6mJkphfXEQqTX5+MWkvgDD6RLCkgmhZNhN8asCgfMSqZQkn3Uc/Gwp2PlmQsHMvBfNY8y8sbisKUfAFk5ijVCVoGm738PptI2dT6ccqmjw5a6iIpniDx+ZubZ/E+jtfAJl97FiAumHq+RmD+fQsVacw8354BWwWlfw1wxS+4zvdvdu5jx719ynQEZaGYEVZhoHX8Xodufz5BYZ2eetBLMn3YFz/XMBYKt7HDHbA6pr7SRa0zdXpLvbA93VflbZFy7uvOg+iO3hax/SVFgn82EIh2yDJiyaKucWd1K0tnNoRUVUIpsx5iNApIjw4wjIIQOGDG6bfWqSjXKJmoe4bbI6/WSURpNhWZyrtoL+zrdGCxhmFTpzMhJTinJVF9hTBQn6OmmusuwMy9GAv02iKxqXLSD6AmqX3IBJ1Rbg66ClwsjcPi1VEZQ2LWti8QBJnuGwVrMg1LC2GY2et5JOVvDqcYjoGW7wTDyOxE8bFGQVeZiS3ATKScFdTtJdGBtV+bStM1TpbBFrDiG+Crtynhe3SXajGCwLI+UlfePJpOlGQp90aVz+8WHQ9rFTzi+SoEFHbk6mOUS/CVEaphGFEE4rPkOPKX3k4kMxTBj18+IsTg5eqR+RAFLe9JfA/P2OX8QSPrqOzSPspKC3wA7q1yiVqm3LIqncXAsERau2RSq2LZUNUVsg3VdBlZdj7OymYNNYTEYvABW6DxJ7XeAUlcfO4AVJ29G6it19h7xg6AvSrCZ2I8J14EtQOlzZvUYS24owgtHEdLdDZFX0ds2lVXA1NmvrayFpZ39s2c7O5Vauvn9fV9uwZh+4pQfdsrZoxr5cxShqWcgCS7R5QA/CnLDGmOaA0yA3S39WVWaQM0Kh4ODwuQhD/azCRabhblU1mLJ/7cXyUde3MwlahV/EQ1TCWUxyF/KY1Kk15kgMoyRuWnrMalO9dc1Abf/Xyf6jgWz6E6OXpmzBoiBXj4MpTkN+DZwPXMOobdaltq3uap4CkaEX2/Zycg+cb3//z7gY/fnww4vT279PFMmc12NaocqT2mjHPTGjqV1GKGawi5lBQd3FRcycwwh0ws0bt5JgLZ9cXJo+5swjqYsebxKDBAhPP2fPbs4+EQpaS8IymKiXEuNh1VbZhN8raDpdppVg2NV2Xt2cD436JfZLegqmRJtZ3VUTw60e8hv+nn/MJ+GX479A8fO0sOJsbLmKxHCupFVREIx9Rv6H8U1YohPAcD3sc4jYeZQo4hcssoLPkxLOlyegT2CczCYsxDF5iIqHKWacc8Rpw3/QXTP4MMRu9CFPhx3SXOlhlQ/Zpn/oRDb0HAgABDLg9QHymd+t398qnykb4MkKsWmUy9pe1n1yFd1xJxSvidSHkzapoqpUlY+2mu+i04o6W01ooCl2HiXFa3LKqZjXBjPCffVCTfRj1ORzNnnzh89ittlLhlsvwHwqfpPd9ysWvPCYalkF0S28j8ZBdgOZ+vk1gyWzvc4BcHSkTM6TcphUw2lekuRGrHVuYDXE2on6M4do7Rzmo2FQV8dwrZQM43yY5dUQ+4bpFYihEM3RWP4f+o9yzdlf+Wxg2ExWbJxJWRUJxN5kmwmA3fhOT9HD2f1p0NDGCZhz8pt4XnErOpuyv80qQgN8lDE+Orb/PtFkEtzAY2SYRxUbT4Elr0zu4FfIkAgpltEUCyb9Iy7y6TVH7MF36cAWsr1DA0aUBdPrnILUSMCGYzRYZF5tQ5IUsLjblSTZjdcWmDFMpxpmbNygmgkKNj3P+TFSIpYFN7hCbPIwDKKIem3Pc6yX0e8YprCCQ7q0D2te3HMu3BQ7dGxEV7WVVzFAH7jIarwrWZXSBtq8KK1DqJ3XbdmrgiT3ITPKKZOtHWmWbtA0TVd/e7I3wxX0pF6BHNeXzorZBdg2FWty7VNuJVP7vuZsDMNu84nnSymyRhK0256/oSoHWuVVsPtIXVJPnhzIPmHuoaMwvUW7Mw2t5utvpXeVmd4TpSzH0mwXWIZHf7Zx7YbA1QwRvVuXN0OGDzRPvIUpk9WyNbu1TlubovLSNG1OcFaBdaT3Xji7IfmxgQYUds5j0uSrL+t/1uVo9CmumaKbUIwadk2rqY4M3TA03dZItaqH7CDs1HgxZEDcrZnifHp7RgfZ3jytwdu6zA9eyqwbptnWHrKTeqez7sk65xMsKEBAVRCYy2ucunh03Y5A0ArRF8P8FrDbey1rz8ggK6HPDK7hCBim9VLm2TQszRXnS9E+d0vzvBTC97kI8yrgritInIGfSY1tbZ7x4M7FV4wiRNyHXy9PewOe3/bmNw1CmJ4E0e0NOd41JNGrnAeTJMXs8AGmdxA/Z7BKP+d+GNL2O3Kv8KIoW7QA0M/eR/kaqpRiGuqjGFLdrDcxONhCExCQP+pwooAoIIYLPxA81D3nJpkNeq64VnkENuZFU9Je3rnVwQYJ0+fjX/HDr9+n8w+Z6fwRHF/7H6MJfEhu4t9/WDd/JNfZHmLlqDz+Sp9LLzXtyimWTRgCgfYpj2FBAL9ZlyqO4cbFTARcIDFpLne1QDWB8OFAylOeBglBCS/oO9Z5LQ/tOwmZ3+i6kp5FoS0ZaCMbFs7XVqa//IXPwqsHielTDAf6Tk0uXf2OAvQCScJLWKi/eRWqMZqXCfjLaGT4MOvclGI1Vx29lJAnxGTFw+scC+XRHHC87X4nzxhNz22PF6mZZlDCtNE5EWJ0DNaOThUZszCEBtxCwLBKgwcCANLkoM/Ft0OHCnIvsu6TsdGgT/PcAY/4hTRhvqBDzbOHCd2U01oeEsycMRxyobyLpa8yjNprJSCMlA1Ctp1RswNt5walOU1uJ2HMOKgCfgVGXZpNSZ57HU/F4E1FzM/uPFlkFPw+NFDakhdGm4Q9F59JpJEtRuhdHwYMzLOWoRbdXmVyh2rN8VT9QjaGeK3YTVyL1Y0UMylIo1kq4q9HaMeB/s5EDchytJ+z6uwENRV0G1yp2kxaKkuwj7xI9d5D1aynM7GPdHFhZraqhYumo/uLbVws1xgcTCMXPPLuwxZyidjIJZ18Mb6kH07C8dg4P/73/T/fb0458pjYx2XpbnFP+rhIlQBAUiGr9moxXUPXusayg93pizfh/XVvUU/2ou4tDAybJREyjOlGQbGNNs/7aXVvEGDBhbzgATFXiHcFW1VCiTe/GdWTp+2FOGZ6kXqDYRRpmoaNHHRTksnM0oTXrxOEywZBmpnwxZUmJgdkACwzavGF4s6wpezZ9+20U/VUlZ0B8HeVrmH3ZKb1ni/6G3NirA/u3XVYKMG9fdV2qo8UZrXTRV6WttG7nS9H3ZXokXVoZWo1zeGblfEvvvzxpXPBUvnU1WcpBNujbcRssOLys9n+70CCxzXZgrawExgBdH3eFT5bfPtqAK80BOQlR2L9TadrDM3uou6pGqKr8jX8PjJ/1J3UHp+XZ+ZqLCXH4+pTnBqgmBprY31KDGlqvmWs3wZZCDtxso8kN7lfp90z565OC5K5TDWVm0MBk2byE0nDXNd62FUSyzPJwL5VCLvKe7qxBgGKnm3HzLok3jHWb0fMql+Qqs+7tXTKmdBMB9WsaJx89Pj1Dw74Rqv46i407InwHkYzYnBzUFsMVEHvIODW1iWArDyqsf2hshyAWMz5HSvLWzS4pDW0gYASPAnQHfc/R3VTSsNSmKdKrbG5dgmWrDc+MN8zsb5SYXMYc+xoXMwZU7ZE5EfHJrXD/ow64RkqExQqQ8MgDWgMPoQj6h+VS0ZXLlndx/Zux5Ik84ZMU9aRScRAo73fWD+3pni/pEZPiWSq6GxVmxZOVLpEbOkC/oPMpMb7iJvMNQHNugdr60LqriaXT1PE/nS3yoZJtr9YjXzOK/bijIJN2SW9AXrl6JZcDO8jSAS8bkBZNyx4Vg+416IPbEXjOLU+6MOMUJYpyEAUciObGKYVjMIgu2V1CoaOX+wcj/Qct/vm1T9DQRqGrEgGf5wjsRjCe/RF+jC8QRpjiA4S1H1SvzPOMew51gSIBwPCBPBpIG5O6NiOiilGxo4KGfphFMcFqzFKH1FiJZ/I6BZ02WBGZ9NKuFVr/zgk6OOYnBHSYaTaasg8dK9UWbjGrnmAP0xggj/pgkfRE7ihWK8+zMlq8OWlFI0BMRjKV6+ue5oGpfnS9GybIIUjtUlwgYcdFnkQR0FJ8wJmBYOXbC3JJRJ41i+HLO2Y0SNWpE8bLE/Zsnza2DvUU1X7vkNYzSHtms4nhfZ7ZGB3ogGAHehCigWPY8/RKKk9hkxr4jEjQf4/aW4AsTDqezPwjBma7wdqwE2DG+qMJy8xmRGfdEoD9myM7HUSjqla36id5DGh70kq0uZJKZJyzhpME1uIXJ03D2NPYRh7A7YnyUNkf8KqjkuQdxq8NwZol+djKLs3+6GjElZdFoDZQ0qoOlguIwNs092tCL7qZn1gneBrHQoeiGFge6lnW6bryl7swWpObItNb89ObNmD3A2kuN0d6IL45brucKPrr/Wt5b7t7gWmy+Zko65tBfapSZYxZULHCvrGM0LTUZimsQ292OpZ32wg1DaUCmJcee+iaqPbh+tNTSI5/PBNbNiqsj1FGNQ3GjamohguVQcENkVERfnYchK+bjG0946Act2Zuh3l66OVJG6mIloBVKmNm9OZsrvHsV6zPEk0sk1Vd0+lTG2OSrKzpQHffp1U6qSjOook4Y1JktqAXyH5YeudAK1u3aalcDArC3jMzUX8Ve2+eL+WNVn55bQCdACuq3JNx7MQY9atOZbRxdE1xwS26/kWvU6BOouUk6m7jm+wn0v2ec8jmqyBvitzE7feG0lmcQW+yJb7sSk6IzUdia7UUOu7nzgl2PF2J07msl5bie3dlDuWrZkycIR61i3NMTY18cYyji33rQejzLqr4iT2wbpKE02R9+O9ZgtNapZiWbYCvGCbVrQi06XdOOPoe1BcZE/AfTpIetlAse3RnW0STDapX7ezBwDQ7evnGTsWKtmaf9X+A5lEtrVrEik8cm96byG9HF2m13adcpbslHuTqRaNPHfXMiXvVBi6GsmpiJMSF6zEAwz3NSwgya6c0EzPEWQp0jhRooR1Ool+f87+PYXGW01f2Ib9oexsjZvr8d1132b9/+LLHzf38NP32fx+9uvT2V+Z6ynKU/68UKQnH3m65buO7bu2E0FdNxzTcAJ0zDLjwHX10Izj0B6ZAMrXwsgPgW47o8A1w0j3PB3alg1jqIPQ8P3INPpH53s+To2nCDQpcWp6yVxX0ubxzrIUmYMifmDwjjtW+dwGcEFnCf025Uab9DjEvYVi8sKkeR5G5LbxFk9Eieo0HnqY0mQm0lPoJVY5PKEVG3iUTUzb3yabyIkbpC4mhjwnXyh/wQ1kB7wJ6pNbIh7eeusqus1zzMe+11slERWYVG9EXG9BtWxX3tBvlYjyVpGmjDMUqjKiXsaEImRxCKcFFUGdlnWdi1gFSguZitXiiABVJRSq1DgAE29C09S+NfBViCTBhF/NiqJwL5OMo1q8lK4LPXCYYUmdVFVNN1VoCxuz1xQZ6bxhXLeTIck5L6u8YGVPuOCqJiorW4oDEbdLgeR2Thb9NH4d7ZElKxAARbBNaQb2UYOgprgcbGtpFYnO6MfJ9Wldr0ha7LE6RSr5CaHpLGbkbmDlYMZsQLxzwx0w2T3WJ3zoIRNfRXgvgvtIeCDR3ZfpDpTmv7Exwst7s88EymfnWyW3jQPlK7TilmVkEWJuRrGPhEbgHKyQ4GPKh5u91QmBNX84OxG/rcS7itWp9AuuKdkZh68wu3KjYgVlnLIPVlAncnjSvO8xGlEDMsTrLv4Svum9BoPZx48jCbETd40k5HSyfy3gOB0OeV4phFqbKMD1sTyrcjT+ZJqhe/ySel/+QKur6rIVnWkLXWfyHT/BjEJ9qx4HsyCisBRBTDxGBUMCmE2nxJ8bhElKQXC5E4l1Ewgy2tshnhEDovw1SwpE9EELOPc2S0a0RH+Sk4K+PIKkmq7IQ1JAj87EPfPw/RJ88xQz4KBBX0iTsAgIQ6FPSPmQgaSEV26TObZXyjEsktFIbgm7vo71HdcMFBtfCNDW190/HaswShXGido3uTnjRI65/ec//3kVpmKnZ66qLGhToRo1KeRo2islhb9FcCQ1KeSo2QktQW41SH8FOgt0ixgV+2igglPeGG24KnyjTZc2lmqvu13ayD4OQpumf8krJIutWFi2TBbZA0FFptUZ4BWSxlNV42yXNLLH47VqM6NjBCiAKrdLG1Wy+ZezL+gIQYAqK+qGDWFVka0W/XOUkF/wPsAdWBTtfuQjF9e/XaFLPhx/Rc/QT75do58Xv31CP6+/Xnz+71PIv1VAqfIWYnjw3njB7HTWAMDzZV5wlRulHgqL1MwgOxNoYRHB57F1bMLqR2VQ5eU4eacIAyrKFFJapkDby61yCTmTefOf5tDfqlromy/kegpXWSZoyIzRB2Symi/kXZvQvLcNskjA8gkN83/COcznd3mocjktuLyBXkRzfL+EbS66MKYtRjNXuoR+KJMbetWXy59n3y7phw/HVx9IDEWv3TjkfnVImR1k2g5f8v5/344/fn//9eL8L3rg9MP70z+uLv4rj+UK/ppB6rTKZpMQ8+Ar5/o65agBY5WzXJRcD3hApf9kJcUujFa1DZrwyfJCuJukGs9ChpsX8ovFTykWj/NJUJL19TzOIwzLmaBVVZvET1oVtxmW6ZsPGhDeJa2NTEOxKm4si8FSFJBiKrw20gytjsUyNFXtzrdpvCrq/D7CG5JGtCZxtlO7vnmSWIoNxXZJIu/1LsTuRK+DLqa3gqgYm6pjURNGTr19shp7yfsuhRpzdq3GVN3BkuymhvWM8Q+Sza7clL9WmVLQbcsypUBPeaJMbTWctQWZMnctU3LM938znBxMEk5fq8QoqLJliZE9CU+VmK3WBGxBYvRdS8xCVCGddNt4tUKjIMx2hYYnlvUgNC/aSSQLTZ3duyuhsWXnwDktUGCxkVcrNirSbFlsZO/AS8g12oLUWLuWGtlJ8BXibE1SFfK0PrsHIzcK4mxZbmRPAQnXa5r2tuQMDbBr4ZG9BdxOE0sueafCp1DtYGRJQauNydLD5fc/gs/Rj3t4duyeXev+cfhtyG+8qwYcg/2o8FAWbvAojljhoWzazfaMm+6yYegdHGNgmYbmO7YNXMMCJjdoeu65AbxOdw/gsgyAhQ2le7iCAwAqi1MU13ezVepGzvw1Kbml2XhCncvHyfjuF/j174/PF2b++9T6+ufJpBakFqIzjb3GyV1LwoT2UZ1GUt+DIsFQQEOWK4CzDCp4g9th0ZaKDIOLVpjiwrpPVzi4j+FFhoBgSJKyU9YVqanIo0F8Ta74eKQFVhhEtzdE3IcRVbTHZFBJlQSp8hVoqeAYqS48roRmSuBxBaR1E34DsmG/yZJRQls9jSFuAIVfKMvZpzi5IZeO8jTN56ST0zVpABXcwkUvMei2der93UrarJa3uK0nOqGYEnBY5UO8DNGuVqR5GcUqmIW46yVd90YFjrWz/mXhrCmETIOy4q++kFKbf8nrMc56afqPcYo1GSHBwD4Z2GeDGt2m5tYU9yU7pTQt4LK3pHfd1TuOg7LmTio2JS9jpWXbZUdyhEKwBaPDqRFYzttHVxf9Dbzl4qzHl/MOR5jZEFsNAeW4mmfozwFGQnPP35FvToioTY4SbGVoGr2KEBXT2H6f/N9Rfbvk0RuegHfvXt58HQLNL4t8iq12WL5osVt4S7LzGJZ064HvNi3gojvh/eliIn6nzdnLCdWzRzoyAlzWdrpWskwAhsCxAagTFrktQb5F3+DNCDAdx6RnmPyMFywDWyDA+ztKAWamDUh66YA4VyMK7kjNgMZYeJvMxZPZWFQx7QtPO4ZT3K4Bg+2isR5q3OYFMpayIG1RgCJ6vc3zwnn+jC3pAsZodEEW0Zp6HTJOPkqyER4nfKe0/aK8KGA5zSmOGu0qi626BFt1uzLnCC/UeDv1nkl7OhfQQzpdfzpvpfd4aGs0R2aPfq/rxOZRjWtr49jgo7Y4/M5hA2eb9c0qBzhPhAsx6KfeMONqoggOTRTBmyhuhMWAY3rmM5llq5xw/p7tOdcSB2bmv1Du5y/7xv0b4H7rRXH/+VMWA8Nb+I5bHT2OMegHb1dJPMb9CC+Lx9bTsIZt7xWPHbjK7DzKsW3TZjWnB/mClLQGIe2TLABjYL83jY1bxfIhMvD34sD5rxVUeSfVYK0Wtzy1I4Wj5mb9QpEMbVUpuwqT2uRF8M/JyFAHkuWMTdpxaU+zZHqgQzeFSUWFTaUwKWngyzSQZh+7qKarvzx2nWUZjCoc36fH9aWTYnczGpRYLDov8WnhwW5sYhRACwrd9J6nFlMvbQGxX5XhoqO5wj1TWoGd5ZqOH1KGtJZfenSS5tEtC4i4+rttPPNTcEPgnGh8hTx65IcwtGJ/G48/Ja/8LSMlecRXTiM+jk7+bWUI1/fs+RHSFBUdAA5Irfnohcvwni/tvb1nf2M6pZgQz6PHE1jhuaTcO6Ju4VEfmCYnSst8m+pXJqpbfNQRVgs4d3DQRjkid62KGVx/wXzjvjfuW5X7qHFm6KLC899Y7o3lNpkvVdYK7gnG8BurvbHaio+6mtIGvt+uf2Cw0kzAqTSN/ubmjfHeGK+zrKo5j/ifiFcq5mipb0vty2DDvU4m3C/OxgBUUT6ZYgjUhtH5v8dymd8cHG+S8SJn9IoDBl+SZgJ/kDaUJA+aWrr2G+Pv06NeqWXyyl9fKaRxUAXKIP6rnioA4tDHABxRHHqBDpzQ8j1LH3mRbYYRgKHjBaZnQN8NgYV+R0FMPgWOr/uBHb3y6Xt7/df8+q0IcAGjvMB2MelaXc4mb8pGUjaeYUPo+WFogji2fOjHwNFdE8ZAN4HnOJ5uW0gZuWEY+NCOAzc0jdiy/NFo5Fsja9H09ZjrhF8TF8ahL9UpN8uzWB5PxNlhSokro6C1UyiENtIMeUuvxgFrwZFEtEETLdanpX806ySD1TwvbjX08YK0Tc1nMeswTfjlE+2h+pkX/l9DAkxA/qZYxl8hLkWsyPHnEHMRmP5i+P3+CVw3bzE03zabf3Yrx0jRJM32XM21DdPTffwTyKxhbIwzZCCpK6H4k5J8RvUcsaMOhkqOr5nNnOu+284E0xWJYKavWY7wz90moRyJUJ8pbAYnVauFTsncOET+qjGR7pDGAg+FgMDXbMvwbBfQn06bgIpMPsPyNd1yHeCzn1sloJzWx4KyLVnjhBN6YhEafoD3WM1eU1KSH8b/1Tc4wlgaVMcmI1GbR8rsg3eHwwUG4gKRpm0mUDSOsTxPA4J2trbJAzK8MiMoX3WTpiSfiS4+SvM6CXWr3/AZ/8xKCt2ExT9KYVAMxL4AyI7BzIIzmzDjoJ/kYTqeHv0MRhr/TFGVYmy8lnlz+8WcczCMYwBXQ2tAswK0GMdQZUfbSP279XrB8Uu3wjicj/eGcYYDCn9yxNnkXXOuR87CiE/4pSkSCv3KPxj2AYgZTL9RPEabfRTNo3fKPop6B5amIe9TO38fCsGWLhQqqxxYQLNsmcbboZi8Y+ORuVrisZif5hM0+0ykJ8EB7aJ8XxOsc9to2+emwj5H+kUzdOHfVgkmw1lvUkMrmSGGUTIhSD04/aWlwHH7AKzAD4Y/DKROdX3R+m0ajsQetuVqvqwBtsMdisZbW+SOVsCePYB18D0YhjB9R7M8QWO0GcJRuF12yRCqdl+Dtnet3bVen1HiHbVIyRqCNccOZ2tn6C5S58Juvb3BN/kUimWkrq7ZnuwT2A5JZQ+NuFunAt2hqbDxb/tvjh7yGZZw4pkncQWiA6guuMFbNYILVveQ1eH9FNFGaM9eIt1A4IB/A67+2+GwBfDQKi9wRVvOLUMh566rubuy4+QWZDJT1HGjWrHn2SgpJoOOA5YvGElMPO7E0TPA8acJZJ7AOR1SJTwC7+WvPhxj+KwWv3U48aCcuwYy9oFoPVptJlG4hRykbRyZrbbDJLJrsO3bTXDTcoJyzRb2XHDrHqJ35jHnrmI136lz19+uf+Yrqfau484Uqh59hrR5DnXl4S9ihtY4YHWphKVG+aDTRJSpoRp3kgKEHla8wDM1p71JUDhpXB83e9iJRejKG8h2G3nMDNkEBmzNZ/3kKxiNMwwrgR+KY7pDFtE9ELK5pq65eq0HeGvpxcFUw/e0Rm+gn9t0tPmy26aV46FIssAII0OWi4Bj5jX0SjfJYl1uuAsK0ofj0cST5wzq0RySvYNX3+WrNd46GmTfxWsxbOfa0cueJYESGdhD3R/G0ZBHDFhXiu2/IvGDfbv68PX656fjH4uGWIOyK044InPCuiAYAwV6+7bf5uLzopfpHiIvZy9/Oat+OWtXL3ezgBvXfVN/+Zva9Zt667zpuhn9z1mD5RV1/W1QtxeaEnqLr6HiAlkb2P2vkLKZU2vFznQdDvZWJwVs9+BbAOwB+tbQ7MBvmY4q68pWYcMBwBM3njM337/fO9XwfXj6zycDgolefPj9XIW/da3w0I1gva1DjBXNUtZzMcRveEJVz/nJ9SnfjzFPTklddOk8eKCbd1JGRICcxnlO0i1SWJLN4pL0Lro/nJIec2k+p8MpZcV0dAZHwSyt6hPogHVN13VABnf+Ryj7Blfo6Flb/ov2CpuVwUe4emXR9BWeBKASRcA3gxuQRVVbu9Vkcc1pWF1EHzpv/bhA6sDe1ATpshP1A2F6SSKbxn2CTJrni1fs5si16l6Ck7aAkwDZ9sQzwp06wYh6VOgZOUvYq7PwqJTWTcC5oz+vWDcVlt6Hn4F5QBedMfysvM4CxKf5mlOfwYY4T1KWco3l2tLkN7uS1A/pxMYOBRMCWMbUDLsp+WYekONEOVFVIw6wzEfVnM51HWoImPcZH2QFxHQOyqBKytGDNFXN06k11noz+p3ihY6Fx4hkqW/WIls1K6jDLWhems0Dm7sbMh14O6ftqd+k0RFrJLwY7dXVtndu/AGeAdafqls0L6urOlG11XPWv2pTdrU1+lb99QRvcD78Ptxnym7Alpwm0Z9AxswUQpvMIogTNJGdXYM8x8tptrIoOsDTTNsBjmV65Lckh44OtPpb/FuedQ84mml6Ov7g68Ba0tr4eTRQZCYsiTDt6yatJ9J5jq45nuWbwNbxb9BSqQ7O6PRc0zB9y3R4YFkUIEQ033NMHZgO/i2T1bA1H9iWb/i261qO5W2KrLLmvcAGCJAo2swseOECxqjk4wiChevrbEQQg5fttPvBa7bl+pZt6OS3sijA1Tihge8Cr4f9p5JStrwmEEotU4UvhlIeopSvW2idsj38+0UTSvahEEKZh0AoZPT4Wj3NNnEJv2BSyYbFl1l1SdSffnQZPEzQ/C3LkXoxdFuuCk3L1zxbWHBkupmIbp4BfOB6OvmtyIQBvqVxkpm6zzPf+iebbItQsuGDR1/J1u4gqOYjYasnHP12XwjV5m754BZfxs4k+93RnWoM/r0ayv7TC+bqOKX78+fQa1eC42mNnYdmUDb1VjDhbaCRieek3BQBZFOvriV9uRTAeR315kf3LK7S95MEwJBoUFdcvcDJty1LExZ7B+z13Mshxo95dFslE/gyJ993NN126s3/fk++bGld5bOCIcioQXEaz247x2k+n2t5AdEK/cDym9IkLAI8yvO7BM5JyltZwSLJboZ1Kvy573oA7dR93XBMpArPo7Fua4SMjzwPZhpPp8Kp9ufz5DZBv5a5P14C/7jAwKnNNQs9ae0CuqkJtoPNM916D78qomHnaXDzImfesVxtqX9oN4Krnnd5N9tJYY7yrAqSrImt3C1Y0fY/fNwT9esqVHGZNCUqm5hJVIBPmLSbIqdsgHy5vL748vn446DONmclZTRGJyE94YoymEV1Pdo8qTKamqAsFnm1VHdUgbUFJEc7OXdjmvPxEuQuids5JheszOQVE1a5iV55D2gCV7NNy7Ac28W/FZvwranzhRXHQnA8TcqqS3ymDaSiRAF9iGVYkHwlHFrH+B9Yj+RNYUsd4GesR0tcBp2Qu5gv0M7loJkGdRIHvnCckBwDdgOW+0T1EU4YqEHo2AklrZ1UpCScyZmZbyw+WNGtuwKLb8Krq+Zx2T3I22LKmw15a4GXN5y4coMYTMswQ56PkpsZZu7zE7oPGApcOWSJPMMR2s8MSfbOMIhjUnZdDhHDDqt5PqSML3yB18rhqMgnP9HNwU+0g3Nd0/VlKJxXw4NOJzEFzYjmyFZTnQzaUp+GZrqbYqeFBdwrrp/Uy/a2gC7SLiu48PZpBV2ldFtcQWvyi2tZ2UXtC5qreG7cHQX+C4ipTTIHg0GToyZk4aHlFi+LNKuYHAk6Y6j1Dvp8hMs+4zz7DX+bQbJEk4vG9ImBtOqSbyGiN8kDQksnB24lSzcfaI79aDpBQD4dU4TXE1ZB8cb4astxhQDO44y/gfiNmvHlAM6f4weJf81zkllbI/+mmL9IGiorYgYdY3JKw6y1dYdjau0zonGQ3ZCsTfrW58rc3dYa3/nuU1DcNoIC2sLye0BgNGYlTRc1+Lfdm5zyYZCXF+5y1GST4vvhh72TL7+s31O6vh6G4jL5yDc2UEHICQkmOTHA4WiURPAJTetfvtjtfWBUKViKbE+Wx67aV3H5kvniLKfJ6UQp021Oa4PDeGWWVUnKeQZmN/nsZrxIpmowEbY26DXPik8RN1OiDlDejb4NWWB4bcyYvC25421GP/PVrr0QzYOSSXGzaqFVZ8HjFMn8YwJqIm1UH9i7sITx1qyxLSfD2uHbTdU+U3o+HZdqaH+pqnJEc4A8j3bVKsVBHXcXcsQjGVYbp4qKRn4ppc+EvLpwPYF/aCMJqaedapeE6OV5Uo3r0Vz/4J1VXquqWWFnvIKm2cTW+H/x5Y+be/jp+2x+P/v16eyvzPUUORhdG7TGhlvgA56PicjgUxkQSKvUZJbhgxSRjEZWKRYZfdt3tTyFAqj1q+OdRWECX84AN1WZ9nYP7PFw+f2P4HP04x6eHbtn17p/HH4byrGeuuL7KWTyjBAxtEym2IZebL0UMjm8pLQumJER5jZVpaukkiHvQI03MnXJ5Nie5smorzsjmpx9BYYCHIF+9D0oLlTZpq+Wgqbuab7sCwK6IoC2sZJ4Q14y3+i2nG44mOn59T9bTkzaMgll0Xtb1mR9qXtb05BK29SUt8E8N9I8Bort0j2JTdLUVeUZNL9Y5Q86+oi2qQpnC2+vsuSmLGd2nbvWaYa8KfJTuM53XDNQcB0EiO/cnrmuvIVVNF7IgmsWma4e8nFVppWq9tbalLIAigwZiVybhkABjtOeGFeFbKncGwAH9DA1yrILReRDmpknl+EuLKV4hEor79QtW/Nb/1adUNsxW1f2UIqpTJE1Fmba1ZvzUZ7GDFkioO71OvVO9MGRGExZ77UnQRbctHxJ+F5nAWJH0sjnxe2/n80SdTGbZ+M0TdsArukDU5f335YJNP6tZVq8U1Mrd0vNWP2LnwokgS41o5zEFWTANfzFkICpkaUHeNN7GWxNDNnVgGX0lgsQy/a1unvTjFFrY03s98eTNUVV4ujIBvZqxlH4/Bygea7YlqQHMAmlXnFWSfkaJQUJDpwwn16Zt7+/gRksl7QLfD1Kw9YtDSkCDxvMjo94pMUamPAibyg8emg5YcqE3EOBR225mmMIrUKN53OGMvAkKxRpwSFA1CTEj9cPAaL6wxk6XwSOnwTRmIYIksZBfJtlmRaTtYreShGRaR4T57CkaQl5lj406xu7HV68yHnc8RxSrKBBO9ch5KsfNtFojAgY3qfwFfOs57iayLLtnR/uqWSK/+QN+wpMC7C3xvYk1n8O115O7oHz7e//GRejPx9+eHF6+/fJUE5nPktwyHuWVviVj9rJV/ozC4E3uchojBxslWmvMb7bJopsmhim1qxQaI1RLDI+6N02UdJEXmI+cfStr3AeFPHLJIIDrBZPy87IVYjg2ppuAYmUvRNB1TuIaGZOioKRQj8KbrHWFDCrmUblZ/Dj76gSLgX1ymDeZmGZxA80DYwHxcsqKEiiG1H4dpMsQPchZFUZByldS3g+Ge6pTPIKuN7GF0zTmdTDok7nfn+H2GCGNjwP8nDauHd4TaFdyxusOzwANB3C9gitWoUAmcfWHpqKroISfLXLyCPC4vmaQtesKSxAd5WL0bO2U9///vjtwTz59+H99+llrP/zrzVWSkvXKu4sJYMOXGABSwqiOg5KzP+KZEp1457XbkMvZyTPa9sjT9O6ZscQd3oImqeTL8aX9MNJOB4b58f/vv/n+82pYu2jardllQiqkxA/YhmyMlBwrRd1nHjeWLPk1jqu39Hj4EGVb8Rs6byYoJvRe6u81LE4LnrX1qH/wwvEEXs8/gPopIsvadqL3dg/YRpMSxj/RI/6mQZl9ROf/BON9FaR1fTnGJJ0q9YN22KGlg2mbWnGCJkZpJZnNMJGZYjlH3Wn5aieEYXj/ULohzQnGVu0DXqzjSGMBeFtM5h6OZjmcwrKTHa9kKS9JFlUQFbWRPYdtHNPs3iwAibMi8kNubw1t0csR1PniyRbvvDCSZO49BwdKuYJgXyWbkxPh/e0W0Q+neYlkmIhl5yn7wi53GkySZq0cr5Zwz1AaV4tvbo5Ss9oDTuIce4uy14lzxkYJyR9BSPm02V0iH33+M8j8Q26LzmoM8jIjm5C3ZZ8WtuCUtstnBKsvJi9orjSN7RA046eviSPdmHfjm5zAjpeVXcCOluIBjOCxduSuAVYBguaeVRqt93qQ8ng/KdCoPM0/ikLNZYd/XFRfnSmUiQiQ65riV9RM+FEOb6aDvyALcxI2D2rM0s/qZSLLRiqagP01KhesUW9UrtAwhnNvgyEIsJpkYdBSMzEDOtrzoaj5B7G2kKa7/l6j12+pAENGoyxw/W/BpJdc8XHu13Flrn3BV+uB5NIux5Y8aL5WztuuNw3aeptv7Wcqwp00i2vuYXKz2NYoO94mBrl7fFpfmbnlKXUXTmwaGi2p+uWg8waT3d9z4B1yb3YQs5wtJosiI8VsIdAN9p7n+dPrDJXZAX+Xcs7kwYhTE/qrlfdIBDSKufBJEnxdH2AaPeP9dNK6uaZ9OGt4jQkFguVDUBCYbj2st2Gi7akHgC1VCmEwkGqR7fdjccAZdLxgM1R42xfPxVtV/G6fgiMFm/NXeLexlrPtX3X1QGw0PdynpMJDM033TrM6ynS01zcdtq3gOn6JtBNq4ftpJLEcpLFZQHvkpw4xDi1P1CHw1H/3u1+SOJruHqqIUm7wybwXA3pOk+3GFVkgtim5mM0YCa0hkJboqXKRouRYRuea9pOD9pSSQ85SHaK9irMIXiGNu3XZNOKt27vpznxg7Jt7BFwXGRXWrqxp1TCUR3fW2QudKikq6oTbEMDnrCqKeRmW3RSAISdzoqC7lm7cgP2mCKe7XSMBG6/mbaG9BfwTB9ZGsjgUNTJYyAE4DZ2sooeQKOakJNkQwSx5HymT7C4pS1vCtIm62tO9uyUKvtID0PXhOQfJCgtgmCUN4C+X2w6OB7G8W8Cp4r0IYBJjr7r00+ppoccOP2cUxyvI2CY1p6KBAbMMhoNw+s4aplwNBtpWMP3PBtZYJZKJmycTtGQUWV6b0AolLa3vLrXqgkGJLdvL023PTfxTR1pRlPIT+j0hcd7AGq0ecjW9+SFDAC0pxX9CypYPpwCwY0/fJ8eBFXJI4oiTQE45HlSuq+EXDnrYYV9dC8lCkrKyOhMML6BV+zPvKjG+U2eBen75mhHkJpzPub5lBHlH1hVD2x6g1mVt0mGprh4+CH+8Re+mWbzP8/u2c3pXw+Dxp23EjHhfVLV90efhdujv5q74z/4zddjgJJB/T7G8iwQ9LhNgad9KT8VMEU2+p140gY8gaZs4uBkvRdSWrQt7bzciMLRA99o9tWqChDNFnOwve3oZjXFZSPq5dSS7QfBTRttCAU3tLKceo8oLsf332RctsA8U5PzQ18oxeXIwycSGQdPSyI+SILbvq3KCOZK3dMcn1vbhu54cqzJ1TVHDAIqXHxbo7jCVfEm44pdVsvyNv0WyR1Ec9e3my30vsi40uBUeAsvshIWQnIf9U2x1D4hLaVqbcbEZCKeRTt+2lZ+2/H+fd0L8rid5WhCKNpuaxjXdDRdN7jLRk42BSZoKyhVDMH0NQcA7DdygeFYfYRclbXthmxE/Oc//3kKh4SebdkqDvEiuIUM0H5I6+i2ptAEtbsGhyWoO4+QxdgXVaKm7dKIXShGHsxjBWyfKpxEEpbQ/wwNzRTOD9E9fLFOf0i3oH5c8xi7cRUPUIdBaOaWAiuz46QXFSG5Zn4XzpNwfpcoUlBF3UhOFkDw1mf2rWIe9M7sdYaBMq1jTZ8WsNrpzBvTVHK8UwFGWVZ50VQE4iIPDktJQAUZnCAr+xjgFMkZ+dykzzc4jDCLcoLniEOoGAqS3+q4aBC1O4vuaEarP+pxkCTjdXAg5Xt23izooDLT2sKnGoQ7TtzvaUVW8+nKfA4coIluAbAdPldm3fGi2rYjp528+2b+t8x/12wv2p0tH/XjNdmFe7Nqq+kvO/JOEgVI/17EQLtpAUZr5i3X1kzHrg0md2/yAtQzL9vCG+qBuY0AtOWiXQrQPd+xbTTBlqz1dhV/Vk++7Nt681+v57+2fB/tS5usjz3Xc3LK6Ns6t1zZLnNl7y3xlca8rWpdU3uqFpnzAsAHNskpykaWN525cAuSkl9WX4Bt8oFY3tgUltGWDsz4Z6VpCy6qxxThPiNxc0qGNgmk/Js2naDj4SMQ0a+Ee/GdhLKjCgeijoIZLVUbVaSShxdg8p07LgiM67u3qqpYdS/vC7EIFJvWpA0Yqg5/TiacLfZAC1mTxYo8IplM87JMwrQuY1c9bs83JE+CE+wbmmdRZfmaMCdIeFt32VgUypHIuoVkkz5yQ+qElfqP1RJW1mUMMatkaUqwmFainGvQe1oJufS4KEjRMT9hmicZ3WKwO1/iAw3/okUBaJ64w24xsMtKV86fdrntuwp8hoU3s42WLPibu5flab7kN2hEh85iI0g1OZ4R/ZHjfSed2I1Yn44LkSczsjRNCDAs8wYlGS79DbgDia1vGAWi5MqaKPM0D+JmeZ3ASV6Iq4fQe4M5uxbgBKDhotfad2W/sbBSb9WnBBtikRsLo44bPBq9pvMKyZ/gAekDAUvNvrLv6oJxa8ENgwhNBzOnWjzbWH7MDGF+3XYEUzRFCP4PkgnCwQzJhHxe2o1rQc+bU2K6FROG3kMeTcB/ZhT2baCCKyJngafBJr+xfov16zyL1WuCDdAqCbYVqdEbYHzlOi1nRkss8cyS4N4m2jZb3lJvzVlfqVzYMlp32VS9uwp39jmOup6kZFFMcHEUcZPktoBmu03JY5veFmhDSCu6WqxSZGyZKoCt3umtsI62WoLaI1FsTQfNmt3eD1oemk690VpyUuIqVaiGr1lGv6iXaqLIa76yDhWjvKjTBvaXTh5uAOw06m5tMq1Qhbo1OslxpW2WofZIE7TDM0EXCaSufDRa06loe7dCxMkwOhBtm6KJAp50e5Wo/akzx2yh+LbVmWd7rdlU5Fi7tso90PZuIb1hGVsgiRyH2mwxao+LCmJ901mwe3SA+Qh24UrhwK1JxmJAkddZj9qf/kS2h7XIx2AZbYRLHmFcsyJ1A50n1FyiaHm//xWp29nKAd11NFOggUzKVdL7bFezRUq6myKlJ1HrrYR1/XDDUjF5PNzAOGD7VawL3nA7uVC97hdc36v3ZZ0wiYGRfz2SjYPD7PudDQUUxumG0qF6NIGWZEigadVcgIF+DIxUo8J22k0+lFoU5TogEVFN1/WXhai2qAXd4mwXs9ODD5imDL9pAl0zFHRCjGD3YHUs4MwVHI9b6MQHWtNjmK48PZ6qcVzduLD3mfFllcGZNkHccT/oprGn8A6mZydKOHAFavYAp7mU05QiZlf8Lr9fffk84KEaEloqIOJmkqbSyuin2Tgsq+zx542rakqrRc7R/2+SajwLtSifYITgpIpy/CjxU5qHeNqCkgSwzssiQj9pxhHavJvoTv8P/Ucl9AxmM3Qjm/lerqqgwl5MGxPMxo9En2ZJVpnGz4ofdhVjXHwkTu7q/p+8beiA9p2pYYCFcxSX/YGmjlBmEXL08ssH7hrnPgaaTHTOkKZIkfeY4roKNbAzdq23ByrCHTvG2qOSJ3efXkgunur+szzbQdwf2E4MAgdEwBrZjmXgHZ7jusYIrYhg5HvuKDJ92vRkZRKfrXzud6oUjte4+V5Od9P7F93Fi0LbWWO+tjfMo9pY03kjcFq8Z6xH4e2NeB/H9EEAk/f1keHCfRzlERtml9S+abrWPg54H8fElmCqQNdfI7ZBZm4ldMi8j2PdxzFd34t20F7qwCM+xg6N93Kw+zimTrrkOubGjkwIndlr+zhQFg9G19+pLcsoNALcntx1YQQ9M7ScwLWjCJoA/XCiKHJ9OwyiMI7RWQbe+O3tS9aRVxJyJbcM7TgIPC+0bYg32CNgjDwfRKE/8mI99mMzsiLH8CNouX5oxoYLfNsyQsuK0VuPRv4+vm0D46DrJjR929zHUR41wwSmj1MwTNtYfee6m5Hiwo1zHc3nOeuHBkiCi41+7OngM+JOp9atH4e6DvaSZ4+EcVrAtzzHAe5+TihHPMHUR8oQIq2xj+M8ag1Ud4GHdgvr+IYe3fkvfIknjHYz91wYxFghQZc7y1M4am62QkzDX+D/lf28O/TiKjqQPkzrHnhCcQlNm8cONZoK/1v424AVEzZtypSFgGtN9qIM+cU59RugR13K1w5KWLLT3fAU5DI2Ri05U6btt4aZxnzUGnaZn8+T2wT9OqHHfp7mBfypawD8PIrGPw283/h5FlTBz6sqLwJcz3kopKvjR0toZ26XdotR98fLE/5e2NTboDP1ilgVaQG5vamXSzZO04Rmw97VntMjvgk/GEqATrJ5PcMiJaytUkLRyEimRJRn5CXjAyJFpw7cUOij7QpFXcomgqxx13K3U/RhikeXJjtXVECXq16W0eQ1CIqvIIq7XaIYElFq5/wBSkVn0TDB7qVCTg2sCXCIImB2KKDIhdo2BeRkHyH5mpCBBjIOUB6sDjWc3VNDsWlXUuMQhaNLDm/35JB35adpUJZJNBCq7WpIjxZex8GQpVMIZvFJEX0l5lbJYsj2rTTfm87ctLmZXxdq2Ap2BaqsVs/b1MxY8sRcU/wN6sjDGgTeB5NpWvsBRVCxNk4b/eYWJyijT4glIZ3Lson/NRl15wRsBtclYEs2J4hnZBT4uQ/5DP38Z1Zy/JoBg6/Jp1B4UvOUeVKN2fExyTeFcVKRJ1BUtbIKaCsFfJMCyV9tP/Nn7qf01Yy7urdLsbG3bIW0uZviKVfeuKwqbGtOwuoy+NB+58clDmxqdkzZ96cIs7xvy1yL15lEPSHF4Rn5rE+49FNwQ5Y9mndNIk4jP4ShFa8fbHzC4/lqS8uySLwrxqA9T8i4eMbTP+xzPso+jqmdIwP2N0dmH8ekgEUZL8wOX/ffPr7wPo6pTiiSGpVYgQ0BtMIgCD1/ZAamYQMv8LzIBGHkuSMHeCPXcVwTGlHkukGIOwWHbjBClkhgmuE+vu0+jkloWeMHoT2y9jK7ZR/H1OTbjNA/pH/jfRzlPo5JzKuJg8gI3Wgfh7mPY2o7rMRcbbCPw93HMbWnsMel+hnzs0VSvFKqb/FRGzbL9/vl39hsa3rs/iKbknruDS0D+/36b4y2sUdtd0rVPL09hbl3bPbG0YfE0T8uzvbNp/QmEG8CsTOB+P7l23XjNsH/3hj7jbEPgLGvoiKZVk0IzerRH/jG2K+esV/56+9erm/o7d/m85nzqVs8XqID3bJs23I8xzZ09Nt3Ysd2TUM3ddM0RlbgAAdi7C0TH/ENnYB3o2OO6dhOhP43cg1Dd0boLN3BYL0++i4kRxxDd/FZJv7WsfD36EqfXGO7+G+HXW2QO4Zuj1X+b/r6TWHtTmHBXzNYR9i2bmW/nonub0rDGkN9GNEUSDzeJEuqJEgXjfkAZ/T6/susWu7U3jcCKBPe9m2QB84lbXfxsyZ/hye+WRNv1sT+CVuDSavr+giZ6Uaw9Zj23rHdG4cfEIdLjru3jeAbY7+9/oHI9eUsTJPnwvS/keJ5pLCAbjmuF4ziUB9B27Y8DATquCMQOC4w9dAFuh3FTuAZHtRNX/fRcd8xoA4DMHJADEPH8kdOGJkjK4Ij04uskWnbugVtACMAjBjakelZ8cgNAz30Yhs9zYpc3QidcARAbI+CHpOM94yw+6hidsdsH/PoVoRwXW6sPqeYtQNxiN8pyW7wl2sUrrqr9/1p12IqClU3V4tpyWgu7aJFAc+QnoOrhgPabiZOoqCiR8hPASoxg9U8L2419PGCYi/MYtKBhpHvU0DqpT/j4meMpHgNSaEz+VsnVctf4Q2+Jzm+l5XJaxC4hjLp9JyUa3FtX0H+jaECWDKUTBtBMYVBkU1gwGEUaQugCkbjDPfHwg/F3DJkvHIgdHKNR+lk6lulkwJwRsAooOJX4p2ODIxFRfA3fN6MwBDoIyJft1k+x+MnPydB9iCIfBtXC11W1oJMHlhADE9HbhbCKJgR6ALSlSqGU5jF+BxShkFvNAmicZKRc0aiQkmTqiJlguiShCwrtNQ7uRGOHQhPAcPT2qAgqqZlvs1P2g5fORJfSQgttH8YJyTR2m3QFgkT40Ao5vktcimQ10wVqMTmiCXjdjaNjmQ4vAOhArDauri2j0SjabuLpozaKStjCmIrkiUNiIXT6GSqH8k1UUA1KP6st5UqPinPb+vb3MAMluTEw6JzbfhwOiuAxaytIlnZMoiLTGexwL1F7gkvga8KuK9I0k+gktVWikChFQ1nm0uYLZuwMpUqvG1EgxzDxijh1s2cNNKMChjsLzLcU8yNtto0FLiVxlaBQ20FTJ8sTkEW4y1GvdektuqEWo8Hub519oQqs3DLhJLhmWRCcUxFovFaewihDlveSoyDu8NRhsBpk67eE4om4nZJt6KJWIm18odCDbdDDRUy6XapIRuKn2eTkOyqWD+R6awq1VQ5NFFp2w2mym6wtmk3cO4QtRyu6WvJSZ5iF0fOspJOG4OdujDIUzr2OvdtoCUL+4yxr2QeFIdjWNh2xzemgPDcrtJzZDv9grVcX5OU56+LlMBuC6XlmrsmpbGC6SH7Oa+Iw7AkceHDoU5HZdoc53p31Fllq8WpwKNEs4yZfkwMmQAeCpE63ilbFSrYLpHkUMHAPGf/P5hpB23ZMCxDk6Vju9smR97fHuDEex1+V9lx2512OYQhKyXuTRDtgcNSRGjxbhHGcX3NM3ati1bxJNQLBlvX2bpx0KtGZ2l39X0gluw7eHx1P2gquR0qmXtAJVexbZWoVFOlm6fTcoC33Q0Rib+H+AuaJnAoVOysWK4qjtsTCdGfJB7UfPdfNDXjT3kM8Rn/Hw==</diagram></mxfile>
2  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: June 30, 2022, 11:15:27 AM
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:
{
   "keymeta":"unsupported",
   "bestblock_nomerkle":"unsupported",
   "tx":[
      
   ],
   "keys":[
      {
         "addr":"<20 bytes>",
     "private":"<a long hex value>",
         "secret":"<33 bytes value>",
         "sec":"Ky2EXQFjBS927tJnjWgApYQAP2vegJEKjkQYNAj5zbfvp9Kc51xM",
         "compressed":true,
         "hexsec":"<32 bytes value>",
         "pubkey":"<32 bytes>",
         "reserve":1
      }
(THERE ARE 2000 OF THIS RECORD, ALWAYS WITH DIFFERENT VALUES)
"bestblock":"unsupported",
   "version":220000,
   "ckey":[
      
   ],
   "pool":[
      {
         "nVersion":220000,
         "public_key_hex":"<32 bytes>",
         "nTime":1656333643,
         "addr":"<20 bytes string>",
         "n":256
      }
(THERE ARE 2000 OF THIS RECORD, ALWAYS WITH DIFFERENT VALUES)
"hdchain":"unsupported",
   "flags":"unsupported",
   "minversion":169900,
   "mkey":{
      
   },
   "names":{
      
   }


3  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: June 01, 2022, 12:17:08 AM
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: <blockHeader> <height> <TransactionCount> <Blk file> <Blk fileLocation> <Rev file> <Rev fileLocation>

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:
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2022-06-01T00:16:38.985Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36" etag="yrPgFuYjnJxNFXGHWWRY" version="18.0.6" type="device"><diagram id="4KwzXGMXcMT0csuQZ-j6" name="Page-1">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</diagram></mxfile>
4  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: May 30, 2022, 03:18:37 PM
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??
5  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: May 30, 2022, 10:42:32 AM
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
6  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: May 16, 2022, 11:00:55 AM
UPDATE

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

PART 2

Code:
<mxCell id="w7sy7rOh6mnJ606th1zS-2" value="Unconfirmed Transactions List" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="30" y="550" width="200" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-3" value="Miner" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="110" y="520" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="jJR8IX2gqd7flar8r1S0-20" target="jJR8IX2gqd7flar8r1S0-66" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-87" value="Starting from the private key the public key will be created with a one way algorithm called ECDSA secp256k1 that uses an elliptic curve for get the result (in BTC this is included in openssl library)" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="355" y="220" width="270" height="100" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-88" value="How i can know if a transaction is mine or from another peer? is the Address convertible to pubKey?" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="245" y="1440" width="170" height="80" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-1" value="Source:&amp;nbsp;https://www.oreilly.com/library/view/mastering-bitcoin-2nd/9781491954379/ch04.html" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1690" y="110" width="290" height="110" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-2" value="Seed &lt;br&gt;(person flower sun river beach phone ananas water network box cable music)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="660" y="130" width="360" height="90" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-4" value="The seed is a generated list of words that can be used with some algorithm (Which??) to recover the private key and have get back the wallet. This is a list of 12 to 24 words because is more easy to remember insted of a hash with number and letters" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="680" y="220" width="320" height="100" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="VVx6t-EbCjM2e1m0rHJF-6" target="w7sy7rOh6mnJ606th1zS-37" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="155" y="1980" />
              <mxPoint x="590" y="1980" />
              <mxPoint x="590" y="2610" />
              <mxPoint x="1260" y="2610" />
              <mxPoint x="1260" y="3165" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-6" value="Address" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="65" y="1577.5" width="180" height="190" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-8" value="The address is a generated value that is created from the public key using 3 hash algorithms (RIPEDM160 and SHA256 for create the public key hash from the public key and the Base58 algorithm for create a fixed length and easy to understand hash)&lt;br&gt;&lt;br&gt;It can be write as: &lt;br&gt;PKHash = RIPEDM160(SHA256(PubKey)). &lt;br&gt;&lt;br&gt;It is also called &quot;Double hash&quot; or Hash160.&lt;br&gt;After i create the readable result with Base58 algorithm.&lt;br&gt;&lt;br&gt;A = BASE58(PKHash)&lt;br&gt;&lt;br&gt;This is used for keep the system more private because every time i create a new transaction the address will be different and since is a one way method is not reversible" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="245" y="1520" width="260" height="305" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-44" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="380" y="2710" width="360" height="630" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-45" value="Transaction" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="525" y="2715" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-49" value="Input1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="380" y="2780" width="120" height="160" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-50" value="Input2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="500" y="2780" width="120" height="160" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-51" value="Input3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="620" y="2780" width="120" height="160" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-54" value="OutPut1 (Payment)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="380" y="2980" width="180" height="150" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-55" value="OutPut2 (Return)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="560" y="2980" width="180" height="150" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-8" value="Input Count" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="380" y="2740" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-9" value="Output Count" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="380" y="2940" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-12" value="Version" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="380" y="3130" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-13" value="Locktime" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="380" y="3170" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-14" value="Source:&amp;nbsp;&lt;br&gt;https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch05.html&lt;br&gt;&lt;br&gt;https://en.bitcoin.it/wiki/Transaction" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="380" y="3260" width="360" height="80" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-10" value="Flag" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="380" y="3210" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-11" value="This is a 4 bytes value that contains the version" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="120" y="3130" width="260" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-12" value="OPTIONAL 2 bytes used for indicate the presence of witness data" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="120" y="3210" width="260" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-13" value="This is a 1-9 bytes value that indicate the number of Inputs" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="190" y="2740" width="190" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-14" value="This is the list of Inputs for the transaction" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="190" y="2780" width="190" height="160" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-15" value="Example:&amp;nbsp;https://www.researchgate.net/figure/Bitcoin-transaction-example-four-input-addresses-and-two-output-addresses-data-from_fig1_281773799" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="380" y="3341" width="360" height="79" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-16" value="This is a 1-9 bytes value that indicate the number of Outputs" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="190" y="2940" width="190" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-17" value="This is the list of Outputs transactions" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="190" y="2980" width="190" height="150" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-18" value="Why is a list?? It could be just 1 for the payment and one for the change right??&lt;br&gt;Example:&lt;br&gt;Mark send 1 BTC to Jack using 2 BTC&lt;br&gt;Change = 1 BTC (return to Mark)&lt;br&gt;Payment = 1 BTC (to Jack)&lt;br&gt;" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="10" y="2980" width="180" height="150" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-20" value="How this are choosen?? &lt;br&gt;Does it scan the UTXO list until is engough??&lt;br&gt;If i have 0 BTC it scan all the list??&lt;br&gt;If are translated how it know if a transaction was sended to me??" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="10" y="2780" width="180" height="160" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-23" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="2890" width="240" height="450" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-24" value="TxInput" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1810" y="2890" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-34" value="Previous transaction Hash" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="2920" width="240" height="70" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-35" value="Previous transaction output index" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="2990" width="240" height="70" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-36" value="TxInput Script Length" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="3060" width="240" height="70" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-37" value="TxInput Script ScriptSig" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="3130" width="240" height="70" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-38" value="Sequence number" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="3200" width="240" height="70" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-40" value="Source:&lt;br&gt;https://en.bitcoin.it/wiki/Transaction" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1720" y="3280" width="240" height="60" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-21" value="This is a 32 bytes of a previous to-be-used transaction. This is a value used for indicate from which TxOutput take the info" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1960" y="2920" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-22" value="This is a 4 bytes value used for indicate the index of the choosen output transaction" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1960" y="2990" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-23" value="This is a 1-9 bytes vale for indicate the script length" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1960" y="3060" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-24" value="This is a script that contains the input informations&amp;nbsp;" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1960" y="3130" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-25" value="This is a 4 bytes value for ????" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1960" y="3200" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-26" value="This is a 8 bytes vale that contain the amount of Satoshi to transfer" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1208" y="3241" width="272" height="49" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-27" value="This is a 1-9 bytes value that contains the length of the script" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1207.5" y="3290" width="272.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-28" value="This is a script that contains the output informations" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1208" y="3340" width="272" height="50" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-29" value="Example ?? Which informations??" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1480" y="3341" width="140" height="49" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-30" value="Example ?? Which informations??" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="2210" y="3130" width="140" height="70" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-38" value="The transaction fee is calculated by Bytes/BTC so the user always try to choose less number of transaction for pay low fees&lt;br&gt;(Default fees is 0.0001BTC/Kb)" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1880" y="2710" width="160" height="119" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-42" value="Will the miner check if a transaction received is valid right? How?" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="30" y="670" width="200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-43" value="How it solve the double spending problem?? Does he check the balance before the transaction??" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="30" y="710" width="200" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Pmx16UZQ2IfWyX8dlkZB-2" value="How this are generated?" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="680" y="320" width="320" height="30" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
7  Bitcoin / Development & Technical Discussion / Re: Deep understanding for Bitcoin on: May 16, 2022, 10:52:30 AM
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:
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2022-05-16T10:49:18.128Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" etag="UiKRFq1jw_-Pbi9YDmV2" version="18.0.3" type="device">
  <diagram id="4KwzXGMXcMT0csuQZ-j6" name="Page-1">
    <mxGraphModel dx="5380" dy="3073" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="jJR8IX2gqd7flar8r1S0-62" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry y="40" width="2480" height="3500" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="jJR8IX2gqd7flar8r1S0-45" target="jJR8IX2gqd7flar8r1S0-22" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="560" y="2540" />
              <mxPoint x="929" y="2540" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-58" value="" style="group" parent="1" vertex="1" connectable="0">
          <mxGeometry x="320" y="390" width="2120" height="860" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-17" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry width="2119.9999999999995" height="859.9999999999998" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="jJR8IX2gqd7flar8r1S0-58" source="jJR8IX2gqd7flar8r1S0-10" target="jJR8IX2gqd7flar8r1S0-12" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-19" value="&lt;font style=&quot;font-size: 18px&quot;&gt;BlockChain&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1099.993170731707" y="12.64705882352941" width="258.53658536585357" height="88.52941176470587" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-64" value="This is the first Block so is the genesis block" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="470" y="118.18" width="356.58" height="75.88" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-80" value="The Difficulty of the blockchain is calculated every 2016 blocks = 14 days. &lt;br&gt;The formula is: &lt;br&gt;difficulty = difficulty * ((2016 * 10) / time_elapsed_for_last_2016_bloks&lt;br&gt;Where 2016 * 10 is the target time in minutes for mine 2016 blocks (14 days)&lt;br&gt;In this way if in the 2 weeks the miners power as been increased a lot i will get a higer difficulty (more 0 at the start), otherwise i will get the exact opposite. This value have a limit for the max change. The max the difficulty adjustment is +300% and -75% (otherwise at the start with a small increase of the mining power the value will be a lot higher)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="20" y="72.65" width="440" height="147.35" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-86" value="The hash is calculated by concatenate the bytes" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="20" y="12.65" width="440" height="60" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-9" value="This is a file saved in the HDD of the machine&amp;nbsp;" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="826.5799999999999" y="117" width="360" height="77.06" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-35" value="" style="group" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1" connectable="0">
          <mxGeometry x="1350.0002439024388" y="177.05882352941174" width="723.9024390243901" height="632.3529411764705" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-11" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry width="723.9024390243902" height="632.3529411764705" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-12" value="Previous Block Hash (1)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry y="101.17647058823528" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-13" value="Creation DateTime (2022.05.12 8:10:0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry y="202.35294117647052" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-14" value="Current Block Hash (2)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry y="303.52941176470586" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-15" value="Block (blk000.dat)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry x="180.97560975609758" y="25.294117647058812" width="361.9512195121951" height="50.58823529411764" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-66" value="Merkle tree Tx (Transactions : 4)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry y="505.88235294117646" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-67" value="Nonce (9876)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-35" vertex="1">
          <mxGeometry y="404.7058823529411" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-36" value="" style="group" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1" connectable="0">
          <mxGeometry x="470" y="190" width="716.58" height="632.3500000000001" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry width="716.58" height="632.35" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-6" value="Block (blk000.dat)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry x="216.57549753104882" y="25.29294117647055" width="310.24390243902434" height="50.58823529411764" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-7" value="Previous Block Hash (0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry y="101.18" width="716.58" height="101.18" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-9" value="Creation DateTime (2022.05.12 8:00:00)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry y="202.35000000000002" width="716.58" height="101.18" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-10" value="Current Block Hash (1)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry y="303.53" width="716.58" height="101.18" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-41" value="Merkle tree Tx (Transactions : 0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry y="505.88000000000005" width="716.58" height="101.18" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-43" value="Nonce (1234)" style="rounded=1;whiteSpace=wrap;html=1;" parent="VVx6t-EbCjM2e1m0rHJF-36" vertex="1">
          <mxGeometry y="404.7" width="716.58" height="101.18" as="geometry" />
        </mxCell>
        <mxCell id="Pmx16UZQ2IfWyX8dlkZB-3" value="Difficulty (number of 0)" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry y="450" width="240" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Pmx16UZQ2IfWyX8dlkZB-4" value="Mining Reward" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry y="390" width="240" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Pmx16UZQ2IfWyX8dlkZB-5" value="Mining reward is calculated by a start of 50 BTC/Block and every 210 000 blocks the reward is cut in half" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry x="240" y="392" width="200" height="58" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-59" value="" style="group" parent="1" vertex="1" connectable="0">
          <mxGeometry x="670" y="1730" width="1760" height="830" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-67" value="" style="group" parent="jJR8IX2gqd7flar8r1S0-59" vertex="1" connectable="0">
          <mxGeometry width="1760" height="830.0000000000001" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-20" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry width="1760" height="830.0000000000001" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-21" value="Merkle Tree Transactions" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="640.5882352941176" y="41.5" width="478.82352941176464" height="41.5" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-22" value="TX1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="103.52941176470587" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-23" value="TX2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="517.6470588235293" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-24" value="TX3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="931.7647058823528" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-25" value="TX3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="1345.8823529411761" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-26" value="HASH_TX1TX2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="310.5882352941176" y="415.00000000000006" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-22" target="jJR8IX2gqd7flar8r1S0-26" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-23" target="jJR8IX2gqd7flar8r1S0-26" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-32" value="HASH_TX1TX2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="1138.8235294117646" y="415.00000000000006" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-24" target="jJR8IX2gqd7flar8r1S0-32" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-25" target="jJR8IX2gqd7flar8r1S0-32" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-36" value="HASH_TX1TX2TX3TX4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="621.1764705882352" y="166" width="517.6470588235293" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-26" target="jJR8IX2gqd7flar8r1S0-36" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="466" y="330" />
              <mxPoint x="880" y="330" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-32" target="jJR8IX2gqd7flar8r1S0-36" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1294" y="330" />
              <mxPoint x="880" y="330" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-19" value="How i&amp;nbsp; can get the wallet balance from here?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-78" value="They are hashed togheter using 2 times the SHA256 algorithm" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="365.88" y="580" width="200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-32" value="I can check if a choosen transaction is in this tree" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="160" width="180" height="60" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-34" value="How??" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="160" y="60" width="180" height="30" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-41" value="Source:&lt;br&gt;https://learnmeabitcoin.com/technical/merkle-root" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="328.88" y="620" width="274" height="30" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-63" value="&lt;font style=&quot;font-size: 24px&quot;&gt;Peer Machine (Local)&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="397.5" y="60" width="285" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="20" y="110" width="1960" height="110" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-2" value="Wallet" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="520" y="110" width="40" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-3" value="Private Key" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="20" y="130" width="300" height="90" as="geometry" />
        </mxCell>
        <mxCell id="VVx6t-EbCjM2e1m0rHJF-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="jJR8IX2gqd7flar8r1S0-4" target="VVx6t-EbCjM2e1m0rHJF-6" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="340" y="270" />
              <mxPoint x="300" y="270" />
              <mxPoint x="300" y="960" />
              <mxPoint x="155" y="960" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-4" value="Public Key" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="320" y="130" width="340" height="90" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-68" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="2850" y="40" width="1080" height="2620" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-69" value="&lt;font style=&quot;font-size: 24px&quot;&gt;Peer Machine (Remote)&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="3295" y="60" width="284" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-72" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="2889" y="90" width="1001" height="840" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-84" value="&lt;font style=&quot;font-size: 18px&quot;&gt;BlockChain&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="3249" y="110" width="100" height="35" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-70" value="" style="shape=flexArrow;endArrow=classic;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=-0.001;entryY=0.565;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=1;startSize=6;strokeColor=default;width=20;startWidth=20;" parent="1" source="jJR8IX2gqd7flar8r1S0-14" target="jJR8IX2gqd7flar8r1S0-72" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="730" y="160" as="sourcePoint" />
            <mxPoint x="1240" y="160" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-90" value="Send New Block (using IRC or RPC)" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="jJR8IX2gqd7flar8r1S0-70" vertex="1" connectable="0">
          <mxGeometry x="0.1036" y="2" relative="1" as="geometry">
            <mxPoint x="52" y="3" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-15" value="The Transaction will be choosen by the miners by the transaction fee that the transaction have" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
          <mxGeometry x="380" y="2650" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-21" value="This is a folder that contains all the Blocks and managed using a Database" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="790" y="360" width="427.5" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="w7sy7rOh6mnJ606th1zS-24" target="jJR8IX2gqd7flar8r1S0-51" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1840" y="2860" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="w7sy7rOh6mnJ606th1zS-25" target="jJR8IX2gqd7flar8r1S0-55" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1089" y="3055" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-41" value="Here i choose only the needed transaction to satisfy the output" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
          <mxGeometry x="1880" y="2830" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-42" value="The private key is generated by a random unique value. An example could be: MAC Address + current Datetime + IP Address. After that the value will be encode using the SHA256 algorithm" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="50" y="220" width="220" height="100" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-65" value="How this peer will remove the transaction in the received block from his UTXO list?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
          <mxGeometry x="2690" y="470" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-66" value="How this peer will confirm the received block?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
          <mxGeometry x="2690" y="410" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-72" value="" style="group" parent="1" vertex="1" connectable="0">
          <mxGeometry x="970" y="3210" width="237.5" height="260" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-25" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-72" vertex="1">
          <mxGeometry width="237.5" height="260" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-26" value="TxOutput" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-72" vertex="1">
          <mxGeometry x="90" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-29" value="Value" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-72" vertex="1">
          <mxGeometry y="31" width="237.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-31" value="TxOutput Script" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-72" vertex="1">
          <mxGeometry y="131" width="237.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-32" value="TxOutput script Length" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-72" vertex="1">
          <mxGeometry y="80" width="237.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-39" value="Source:&lt;br&gt;https://en.bitcoin.it/wiki/Transaction" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-72" vertex="1">
          <mxGeometry y="200" width="237.5" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-76" value="" style="group" parent="1" vertex="1" connectable="0">
          <mxGeometry x="2929" y="160" width="681" height="570" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-73" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry width="681" height="570" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-74" value="Block (blk000.dat)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry x="194.57142857142858" y="22.799999999999997" width="291.85714285714283" height="45.599999999999994" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-75" value="Previous Block Hash (0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="91.19999999999999" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-76" value="Creation DateTime (2022.05.12 8:0:0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="182.39999999999998" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-77" value="Current Block Hash (1)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="273.59999999999997" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-85" value="Merkle tree Tx (Transactions : 0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="455.99999999999994" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-86" value="Nonce (1234)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="364.79999999999995" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="30" y="520" width="200" height="150" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-84" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.001;entryY=0.031;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="w7sy7rOh6mnJ606th1zS-2" target="jJR8IX2gqd7flar8r1S0-44" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="190" y="2710" as="targetPoint" />
            <Array as="points">
              <mxPoint x="20" y="580" />
              <mxPoint x="20" y="2730" />
            </Array>
          </mxGeometry>
        </mxCell>
8  Bitcoin / Development & Technical Discussion / Deep understanding for Bitcoin on: May 12, 2022, 03:05:47 PM
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:
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2022-05-12T14:55:43.701Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" etag="6UIRw_U5Pu0viv0x1a0o" version="18.0.3" type="device">
  <diagram id="4KwzXGMXcMT0csuQZ-j6" name="Page-1">
    <mxGraphModel dx="237" dy="122" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="jJR8IX2gqd7flar8r1S0-62" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry y="40" width="2480" height="3500" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="jJR8IX2gqd7flar8r1S0-45" target="jJR8IX2gqd7flar8r1S0-22" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="260" y="2000" />
              <mxPoint x="939" y="2000" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-58" value="" style="group" parent="1" vertex="1" connectable="0">
          <mxGeometry x="320" y="390" width="2120" height="860" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-17" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry width="2119.9999999999995" height="859.9999999999998" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="103.41999999999999" y="177.05882352941174" width="976.5799999999999" height="632.3529411764705" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-6" value="Block (blk000.dat)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="436.5854975310489" y="202.35294117647055" width="310.24390243902434" height="50.58823529411764" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-7" value="Previous Block Hash (0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="103.41999999999999" y="278.235294117647" width="976.5799999999999" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-9" value="Creation DateTime (2022.05.12 8:00:00)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="103.41999999999999" y="379.41176470588226" width="976.5799999999999" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-10" value="Current Block Hash (1)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="103.41999999999999" y="480.58823529411757" width="976.5799999999999" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-11" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1344.390243902439" y="177.05882352941174" width="723.9024390243902" height="632.3529411764705" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-12" value="Previous Block Hash (1)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1344.390243902439" y="278.235294117647" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="jJR8IX2gqd7flar8r1S0-58" source="jJR8IX2gqd7flar8r1S0-10" target="jJR8IX2gqd7flar8r1S0-12" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-13" value="Creation DateTime (2022.05.12 8:10:0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1344.390243902439" y="379.41176470588226" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-14" value="Current Block Hash (2)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1344.390243902439" y="480.58823529411757" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-15" value="Block (blk001.dat)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1525.3658536585365" y="202.35294117647055" width="361.9512195121951" height="50.58823529411764" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-19" value="&lt;font style=&quot;font-size: 18px&quot;&gt;BlockChain&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1099.993170731707" y="12.64705882352941" width="258.53658536585357" height="88.52941176470587" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-41" value="Merkle tree Tx (Transactions : 0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="103.41999999999999" y="682.9411764705882" width="976.5799999999999" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-43" value="Nonce (1234)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="103.41999999999999" y="581.7647058823528" width="976.5799999999999" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-66" value="Merkle tree Tx (Transactions : 4)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1344.390243902439" y="682.9411764705882" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-67" value="Nonce (9876)" style="rounded=1;whiteSpace=wrap;html=1;" parent="jJR8IX2gqd7flar8r1S0-58" vertex="1">
          <mxGeometry x="1344.390243902439" y="581.7647058823528" width="723.9024390243902" height="101.17647058823528" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-20" value="This is stored in HDD as single files" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry x="99.99999999999999" y="101.17647058823528" width="419.9999999999999" height="75.88235294117645" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-64" value="This is the first Block so is the genesis block" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry x="519.9999999999999" y="101.17647058823528" width="419.9999999999999" height="75.88235294117645" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-79" value="How the mining difficulty is calculted? I know it&#39;s by an algoritm but which?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry x="1480" width="307" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-80" value="How the mining difficulty is calculted? I know it&#39;s by an algoritm but which?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry x="1787" width="333" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-86" value="How the hash of the block is calculated? (In my code sample i just created a long string like:&amp;nbsp;&lt;br&gt;PrevousBlockHash CreationDateTime TransactionHash Nonce&lt;br&gt;How Bitcoin put this information togheter?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="jJR8IX2gqd7flar8r1S0-58">
          <mxGeometry x="1480" y="60" width="640" height="60" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-59" value="" style="group" parent="1" vertex="1" connectable="0">
          <mxGeometry x="680" y="1300" width="1760" height="830" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-67" value="" style="group" vertex="1" connectable="0" parent="jJR8IX2gqd7flar8r1S0-59">
          <mxGeometry width="1760" height="830.0000000000001" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-20" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry width="1760" height="830.0000000000001" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-21" value="Merkle Tree Transactions" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="640.5882352941176" y="41.5" width="478.82352941176464" height="41.5" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-22" value="TX1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="103.52941176470587" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-23" value="TX2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="517.6470588235293" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-24" value="TX3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="931.7647058823528" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-25" value="TX3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="1345.8823529411761" y="664" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-26" value="HASH_TX1TX2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="310.5882352941176" y="415.00000000000006" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-22" target="jJR8IX2gqd7flar8r1S0-26" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-23" target="jJR8IX2gqd7flar8r1S0-26" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-32" value="HASH_TX1TX2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="1138.8235294117646" y="415.00000000000006" width="310.5882352941176" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-24" target="jJR8IX2gqd7flar8r1S0-32" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-25" target="jJR8IX2gqd7flar8r1S0-32" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-36" value="HASH_TX1TX2TX3TX4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-67" vertex="1">
          <mxGeometry x="621.1764705882352" y="166" width="517.6470588235293" height="83" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-26" target="jJR8IX2gqd7flar8r1S0-36" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="w7sy7rOh6mnJ606th1zS-67" source="jJR8IX2gqd7flar8r1S0-32" target="jJR8IX2gqd7flar8r1S0-36" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-19" value="How i&amp;nbsp; can get the wallet balance from here?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-67">
          <mxGeometry width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-78" value="How they are hashed togheter?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-67">
          <mxGeometry x="365.88" y="580" width="200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-63" value="&lt;font style=&quot;font-size: 24px&quot;&gt;Peer Machine (Local)&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="397.5" y="60" width="285" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="20" y="110" width="770" height="110" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-2" value="Wallet" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="100" y="110" width="40" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-3" value="Private Key (Sha???)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="20" y="130" width="200" height="90" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-4" value="Public Key (Sha???)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="220" y="130" width="200" height="90" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-68" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="2850" y="40" width="1080" height="2620" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-69" value="&lt;font style=&quot;font-size: 24px&quot;&gt;Peer Machine (Remote)&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="3295" y="60" width="284" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-72" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="2889" y="90" width="1001" height="840" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-84" value="&lt;font style=&quot;font-size: 18px&quot;&gt;BlockChain&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="3249" y="110" width="100" height="35" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-70" value="" style="shape=flexArrow;endArrow=classic;html=1;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=-0.001;entryY=0.565;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=1;startSize=6;strokeColor=default;width=20;startWidth=20;" parent="1" source="jJR8IX2gqd7flar8r1S0-14" target="jJR8IX2gqd7flar8r1S0-72" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="730" y="160" as="sourcePoint" />
            <mxPoint x="1240" y="160" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-90" value="Send New Block (using IRC or RPC)" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="jJR8IX2gqd7flar8r1S0-70" vertex="1" connectable="0">
          <mxGeometry x="0.1036" y="2" relative="1" as="geometry">
            <mxPoint x="52" y="3" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-15" value="When this will be added and how it choice which from the unconfirmed transaction list?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
          <mxGeometry x="80" y="2020" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-21" value="This is a folder that contains all the Blocks and managed using a Database" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="790" y="360" width="427.5" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-22" value="I think this have a lot more informations" style="text;html=1;strokeColor=#d6b656;fillColor=#fff2cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="20" y="80" width="200" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="w7sy7rOh6mnJ606th1zS-23" target="jJR8IX2gqd7flar8r1S0-51">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1960" y="2210" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="w7sy7rOh6mnJ606th1zS-25" target="jJR8IX2gqd7flar8r1S0-55">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1069" y="2350" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-41" value="I need to get every transaction to me and use it here or not?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
          <mxGeometry x="1780" y="2610" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-42" value="This 2 are generated using the ECDSA algorithm starting from a random unique value" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="20" y="220" width="410" height="80" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-65" value="How this peer will remove the transaction in the received block from his UTXO list?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
          <mxGeometry x="2690" y="470" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-66" value="How this peer will confirm the received block?" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
          <mxGeometry x="2690" y="410" width="160" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-71" value="" style="group" vertex="1" connectable="0" parent="1">
          <mxGeometry x="80" y="2080" width="360" height="460" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-44" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-71" vertex="1">
          <mxGeometry width="360" height="460" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-69" value="" style="group" vertex="1" connectable="0" parent="w7sy7rOh6mnJ606th1zS-71">
          <mxGeometry width="360" height="460" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-45" value="Transaction" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-69" vertex="1">
          <mxGeometry x="145" y="5" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-49" value="Input1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-69" vertex="1">
          <mxGeometry y="90" width="120" height="80" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-50" value="Input2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-69" vertex="1">
          <mxGeometry x="120" y="90" width="120" height="80" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-51" value="Input3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-69" vertex="1">
          <mxGeometry x="240" y="90" width="120" height="80" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-54" value="OutPut1 (Payment)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-69" vertex="1">
          <mxGeometry y="230" width="180" height="80" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-55" value="OutPut2 (Return)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;gradientColor=none;" parent="w7sy7rOh6mnJ606th1zS-69" vertex="1">
          <mxGeometry x="180" y="230" width="180" height="80" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-8" value="Input Count" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-69">
          <mxGeometry y="30" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-9" value="Output Count" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-69">
          <mxGeometry y="170" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-12" value="Version" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-69">
          <mxGeometry y="310" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-13" value="Locktime" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-69">
          <mxGeometry y="350" width="360" height="40" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-14" value="Source:&amp;nbsp;&lt;br&gt;https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch05.html" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-69">
          <mxGeometry y="400" width="360" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-72" value="" style="group" vertex="1" connectable="0" parent="1">
          <mxGeometry x="827" y="2793" width="237.5" height="260" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-25" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-72">
          <mxGeometry width="237.5" height="260" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-26" value="TxOutput" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-72">
          <mxGeometry x="90" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-29" value="Amount" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-72">
          <mxGeometry y="31" width="237.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-31" value="Locking-Script" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-72">
          <mxGeometry y="131" width="237.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-32" value="Locking-Script size" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-72">
          <mxGeometry y="80" width="237.5" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-39" value="Source:&amp;nbsp;&lt;br&gt;https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch05.html" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-72">
          <mxGeometry y="190" width="237.5" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-73" value="" style="group" vertex="1" connectable="0" parent="1">
          <mxGeometry x="1840" y="2670" width="240" height="365" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-23" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry width="240" height="365" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-24" value="TxInput" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry x="90" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-34" value="Transaction Hash" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry y="30" width="240" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-35" value="Output Index" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry y="80" width="240" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-36" value="Unlocking-Script Size" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry y="130" width="240" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-37" value="Unlocking-Script" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry y="180" width="240" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-38" value="Sequence number" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry y="230" width="240" height="50" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-40" value="Source:&amp;nbsp;&lt;br&gt;https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch05.html" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="w7sy7rOh6mnJ606th1zS-73">
          <mxGeometry y="295" width="240" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-76" value="" style="group" vertex="1" connectable="0" parent="1">
          <mxGeometry x="2929" y="160" width="681" height="570" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-73" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry width="681" height="570" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-74" value="Block (blk000.dat)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry x="194.57142857142858" y="22.799999999999997" width="291.85714285714283" height="45.599999999999994" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-75" value="Previous Block Hash (0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="91.19999999999999" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-76" value="Creation DateTime (2022.05.12 8:0:0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="182.39999999999998" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-77" value="Current Block Hash (1)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="273.59999999999997" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-85" value="Merkle tree Tx (Transactions : 0)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="455.99999999999994" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="jJR8IX2gqd7flar8r1S0-86" value="Nonce (1234)" style="rounded=1;whiteSpace=wrap;html=1;" parent="w7sy7rOh6mnJ606th1zS-76" vertex="1">
          <mxGeometry y="364.79999999999995" width="681" height="91.19999999999999" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="30" y="520" width="200" height="400" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-84" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="w7sy7rOh6mnJ606th1zS-2">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="80" y="2101.6666666666665" as="targetPoint" />
            <Array as="points">
              <mxPoint x="20" y="580" />
              <mxPoint x="20" y="2102" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-2" value="Unconfirmed Transactions List" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="30" y="550" width="200" height="60" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-3" value="Miner" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="110" y="520" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="jJR8IX2gqd7flar8r1S0-20" target="jJR8IX2gqd7flar8r1S0-66">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-87" value="This is used with an algorithm (i think ECDSA) for generate Addresses that will be used on the transactions&amp;nbsp;" style="text;html=1;strokeColor=#d79b00;fillColor=#ffe6cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="423" y="220" width="227" height="80" as="geometry" />
        </mxCell>
        <mxCell id="w7sy7rOh6mnJ606th1zS-88" value="How i can know if a transaction is mine or from another peer? is the Address convertible to pubKey?" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="650" y="220" width="140" height="80" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!