{"id":640,"date":"2018-10-31T17:35:45","date_gmt":"2018-10-31T23:35:45","guid":{"rendered":"http:\/\/www.jacobsoft.com.mx\/?p=640"},"modified":"2025-02-20T13:37:50","modified_gmt":"2025-02-20T19:37:50","slug":"la-tecnologia-blockchain","status":"publish","type":"post","link":"https:\/\/www.jacobsoft.com.mx\/en\/la-tecnologia-blockchain\/","title":{"rendered":"The Blockchain Technology"},"content":{"rendered":"<h2 class=\"wp-block-heading\">The Blockchain Technology<\/h2>\n\n\n\n<p>We can say that blockchain is the technology of <strong>bitcoin <\/strong>and other cryptocurrencies, but these are only part of the entire spectrum that encompasses both concept and technology.<\/p>\n\n\n\n<p>The technology really has its origins in 1991, when Stuart Haber and W. Scott Stornetta described the first process on a chain of insured blocks <strong>cryptographically<\/strong>, later, in 2008 it began to be popular with the arrival of <strong>bitcoin <\/strong>and today the demand for this technology is covering other scenarios such as commercial applications, which predicts an annual growth of 51% by 2022 in several markets, such as the financial sector and the Internet of Things (IoT) among others. agreement with publications of <a href=\"https:\/\/www.marketwatch.com\/press-release\/blockchain-technology-market-2018-global-analysis-industry-size-share-leaders-current-status-by-major-key-vendors-and-trends-by-forecast-to-2022-2018-08-01\" target=\"_blank\" rel=\"noreferrer noopener\">MarketWatch<\/a>.<\/p>\n\n\n\n<p>In 2008, an article entitled <a href=\"https:\/\/bitcoin.org\/bitcoin.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Bitcoin: a peer-to-peer electronic money system<\/a> It was published by Satoshi Nakamoto. The article describes the combination of cryptographic techniques and a peer-to-peer network without the need to rely on a centralized authority (as banks do) to make payments from one person to another. <\/p>\n\n\n\n<p>The same article introduces a distributed system for storing information (now called &quot;blockchain&quot;), which has a much wider field of application than just payments or cryptocurrencies.<\/p>\n\n\n\n<p>Since then, interest in the blockchain has grown practically in all sectors. So Blockchain is now the technology under fully digital cryptocurrencies like Bitcoin, distributed computing technologies like <strong>Ethereum<\/strong>, and open source frameworks like <strong>Hyperledger Fabric<\/strong>, on which the<strong> IBM Blockchain Platform<\/strong>.<\/p>\n\n\n\n<p>The term Blockchain refers to a chain of blocks that establish a record <strong>only<\/strong>, <strong>agreed upon <\/strong>Y <strong>distributed <\/strong>in several nodes of a network. In the case of cryptocurrencies, it could be said that it is the accounting bitacora where all transactions are recorded. That is, in each block it is stored:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A number of valid records or transactions<\/li><li>Information regarding that block<\/li><li>Your link with the previous block and the next block<\/li><\/ul>\n\n\n\n<p>Each block has a unique identifier of the type <strong>hash <\/strong>which represents the fingerprint of the block.<\/p>\n\n\n\n<p>In this sense, each block has a specific place and <strong>immovable <\/strong>within the chain, since in each block there is information from the hash of the previous block, and the one linked to the later one. <\/p>\n\n\n\n<p>The entire chain is stored in each node of the network that makes up the blockchain, an exact copy of the chain is stored in <strong>everyone <\/strong>the participating nodes of the network.<\/p>\n\n\n\n<p>As new transactions or registrations are created, these are <strong>verified <\/strong>Y <strong>validated <\/strong>by the nodes of the network and later added to a new block that is linked to the chain.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"220\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/blockchain_esquema.png\" alt=\"\" class=\"wp-image-643\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/blockchain_esquema.png 711w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/blockchain_esquema-300x93.png 300w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><figcaption>Diagram of the block chain<\/figcaption><\/figure><\/div>\n\n\n\n<p>Since it is a technology <strong>distributed <\/strong>where each node in the network stores an exact copy of the string, the <strong>availability <\/strong>of information is guaranteed at all times. If a node in the network suffers breakdowns or attacks, the information is available in the other nodes.<\/p>\n\n\n\n<p>The <strong>integrity <\/strong>of the information is also insured given that being a record <strong>agreed upon<\/strong>, all the nodes contain the same information and to alter the information it would be necessary to modify it in the whole chain or in at least 51% of the nodes.<\/p>\n\n\n\n<p>At the same time, since each block is linked to the next block, once a new block is added to the chain, it becomes <strong>unalterable<\/strong>, if a block is modified, its relation with the chain is broken, therefore, all the information registered in the blocks is <strong>immutable <\/strong>Y <strong>life<\/strong>.<\/p>\n\n\n\n<p>In this sense, blockchain allows you to store information that can never be <strong><em>lose, modify or eliminate<\/em><\/strong>.<\/p>\n\n\n\n<p>Certificates and digital signatures are used in each node of the network to verify the information and validate the transactions, as well as the data stored in the chain, thus enabling the <strong>authenticity<\/strong> of the information.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uses of Blockchain<\/h3>\n\n\n\n<p>Blockchain can be used to certify and validate any type of information, as well as store important documents, such as deeds without relying on third parties.<\/p>\n\n\n\n<p>In general, any type of information that needs to be preserved intact and that must remain available in a secure, decentralized and cheaper way than through intermediaries. If this information is stored encrypted, its confidentiality can be guaranteed since only those who have the encryption key will be able to access it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Health sector<\/h3>\n\n\n\n<p>Health records could be unified and stored in blockchain so that patients&#039; medical records are kept safe and at the same time available to each authorized physician, regardless of health service.<\/p>\n\n\n\n<p>The pharmaceutical industry could use blockchain to validate and verify medicines and thereby avoid counterfeiting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Internet of Things (IoT)<\/h3>\n\n\n\n<p>The challenge for blockchain rests with the millions of devices connected to the Internet, given that the centralized model will not support the number of devices that are increasing every time. With blockchain devices can communicate through the network safely, directly and reliably, without intermediaries.<\/p>\n\n\n\n<p>As it mentioned above, <strong>Blockchain<\/strong> allows to verify, validate, track and store all types of information, from digital certificates, logistics and messaging services, smart contracts, money, financial transactions, as well as democratic election systems, among others.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Blockchain Council<\/h2>\n\n\n\n<p>The Blockchain Council (Blockchain Council) is an authorized group of experts and enthusiasts whose work is to promote research, development and evangelize about cases of use, products and knowledge related to technology. <strong>Blockchain<\/strong> to achieve a better world.<\/p>\n\n\n\n<p>The Blockchain technology is emerging rapidly with a wide scope in the future. <\/p>\n\n\n\n<p>Blockchain acts as a financial network, a software, a distributed ledger, etc. Due to this great variety of benefits and characteristics, companies are now changing their centralized and traditional work system to this futuristic technology.<\/p>\n\n\n\n<p>The Blockchain board creates an environment and creates awareness among companies, developers and society by educating them on Blockchain topics.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Programming for Blockchain<\/h3>\n\n\n\n<p>The blockchain council has several <a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=586002.11&amp;subid=0&amp;type=4\" target=\"_blank\" rel=\"noreferrer noopener\">courses and certifications<\/a> interesting to develop applications for blockchain, there are even tutorials to develop and implement a public blockchain from scratch with a simple application to deploy it.<\/p>\n\n\n\n<p>Create access points for different blockchain functions, such as adding a transaction using the Flask microframework, running the programs on multiple machines to create a decentralized network. The examples also show the development of a user interface to interact with the blockchain and store information for any use such as payments, peer-to-peer, conversations, electronic commerce, etc.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Blockchain with Python<\/h2>\n\n\n\n<p>In this example, a public blockchain is created, managed by the server_id application, and information is stored in JSON format<\/p>\n\n\n\n<pre>{&quot;author&quot;: &quot;author_name&quot;, &quot;content&quot;: &quot;Information the author wants to share&quot;, &quot;timestamp&quot;: &quot;The time the content was created&quot;}\n<\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>server_host.py<\/p>\n\n\n\n<link crossorigin=\"anonymous\" media=\"all\" integrity=\"sha512-DMUv06uA9jcLpuzWEnwuWTuYn\/1rt3UmOKgIrS5ESQLJtqWQzexcD85XhWhAk0wcGQmlhspauIq+6Hjmue1A5g==\" rel=\"stylesheet\" href=\"https:\/\/assets-cdn.github.com\/assets\/frameworks-1291ffafdf7ffb4d9be67d690fd09212.css\" \/>\n        <link crossorigin=\"anonymous\" media=\"all\" integrity=\"sha512-K63Cu5BP+JmIEHRfiKC7s5dOA8XrAF3GtrWdophFd5F0BwNC5tQJQZ94ooUTruniwEByQxFeyx3AUdePBskgZw==\" rel=\"stylesheet\" href=\"https:\/\/assets-cdn.github.com\/assets\/github-89870b48b4732f6a6428a138b1512f5e.css\" \/>\n\n<div class=\"file-info\">\n            266 lines (203 sloc)\n            <span class=\"file-info-divider\"><\/span>\n            7.44 KB\n        <\/div>\n\n        <div itemprop=\"text\" class=\"blob-wrapper data type-python\">\n            <table class=\"highlight tab-size js-file-line-container\" data-tab-size=\"8\">\n                <tr>\n                    <td id=\"L1\" class=\"blob-num js-line-number\" data-line-number=\"1\"><\/td>\n                    <td id=\"LC1\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">desde<\/span> hashlib <span class=\"pl-k\">import<\/span> sha256<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L2\" class=\"blob-num js-line-number\" data-line-number=\"2\"><\/td>\n                    <td id=\"LC2\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import<\/span> json<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L3\" class=\"blob-num js-line-number\" data-line-number=\"3\"><\/td>\n                    <td id=\"LC3\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import<\/span> time<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L4\" class=\"blob-num js-line-number\" data-line-number=\"4\"><\/td>\n                    <td id=\"LC4\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L5\" class=\"blob-num js-line-number\" data-line-number=\"5\"><\/td>\n                    <td id=\"LC5\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">desde<\/span> flask <span class=\"pl-k\">import<\/span> Flask, request<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L6\" class=\"blob-num js-line-number\" data-line-number=\"6\"><\/td>\n                    <td id=\"LC6\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import<\/span> requests<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L7\" class=\"blob-num js-line-number\" data-line-number=\"7\"><\/td>\n                    <td id=\"LC7\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L8\" class=\"blob-num js-line-number\" data-line-number=\"8\"><\/td>\n                    <td id=\"LC8\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L9\" class=\"blob-num js-line-number\" data-line-number=\"9\"><\/td>\n                    <td id=\"LC9\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">class<\/span> <span class=\"pl-en\">Block<\/span>:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L10\" class=\"blob-num js-line-number\" data-line-number=\"10\"><\/td>\n                    <td id=\"LC10\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-c1\">__init__<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>, <span class=\"pl-smi\">index<\/span>, <span class=\"pl-smi\">transactions<\/span>, <span class=\"pl-smi\">timestamp<\/span>, <span class=\"pl-smi\">previous_hash<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L11\" class=\"blob-num js-line-number\" data-line-number=\"11\"><\/td>\n                    <td id=\"LC11\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.index <span class=\"pl-k\">=<\/span> index<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L12\" class=\"blob-num js-line-number\" data-line-number=\"12\"><\/td>\n                    <td id=\"LC12\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.transactions <span class=\"pl-k\">=<\/span> transactions<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L13\" class=\"blob-num js-line-number\" data-line-number=\"13\"><\/td>\n                    <td id=\"LC13\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.timestamp <span class=\"pl-k\">=<\/span> timestamp<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L14\" class=\"blob-num js-line-number\" data-line-number=\"14\"><\/td>\n                    <td id=\"LC14\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.previous_hash <span class=\"pl-k\">=<\/span> previous_hash<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L15\" class=\"blob-num js-line-number\" data-line-number=\"15\"><\/td>\n                    <td id=\"LC15\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.nonce <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">0<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L16\" class=\"blob-num js-line-number\" data-line-number=\"16\"><\/td>\n                    <td id=\"LC16\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L17\" class=\"blob-num js-line-number\" data-line-number=\"17\"><\/td>\n                    <td id=\"LC17\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">compute_hash<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L18\" class=\"blob-num js-line-number\" data-line-number=\"18\"><\/td>\n                    <td id=\"LC18\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L19\" class=\"blob-num js-line-number\" data-line-number=\"19\"><\/td>\n                    <td id=\"LC19\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        A function that return the hash of the block contents.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L20\" class=\"blob-num js-line-number\" data-line-number=\"20\"><\/td>\n                    <td id=\"LC20\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L21\" class=\"blob-num js-line-number\" data-line-number=\"21\"><\/td>\n                    <td id=\"LC21\" class=\"blob-code blob-code-inner js-file-line\">        block_string <span class=\"pl-k\">=<\/span> json.dumps (<span class=\"pl-c1\">self<\/span>.<span class=\"pl-c1\">__dict__<\/span>, <span class=\"pl-v\">sort_keys<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">True<\/span>)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L22\" class=\"blob-num js-line-number\" data-line-number=\"22\"><\/td>\n                    <td id=\"LC22\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> sha256 (block_string.encode ()). hexdigest ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L23\" class=\"blob-num js-line-number\" data-line-number=\"23\"><\/td>\n                    <td id=\"LC23\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L24\" class=\"blob-num js-line-number\" data-line-number=\"24\"><\/td>\n                    <td id=\"LC24\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L25\" class=\"blob-num js-line-number\" data-line-number=\"25\"><\/td>\n                    <td id=\"LC25\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">class<\/span> <span class=\"pl-en\">Blockchain<\/span>:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L26\" class=\"blob-num js-line-number\" data-line-number=\"26\"><\/td>\n                    <td id=\"LC26\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#<\/span> difficulty of our PoW algorithm<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L27\" class=\"blob-num js-line-number\" data-line-number=\"27\"><\/td>\n                    <td id=\"LC27\" class=\"blob-code blob-code-inner js-file-line\">    difficulty <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">2<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L28\" class=\"blob-num js-line-number\" data-line-number=\"28\"><\/td>\n                    <td id=\"LC28\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L29\" class=\"blob-num js-line-number\" data-line-number=\"29\"><\/td>\n                    <td id=\"LC29\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-c1\">__init__<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L30\" class=\"blob-num js-line-number\" data-line-number=\"30\"><\/td>\n                    <td id=\"LC30\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.unconfirmed_transactions <span class=\"pl-k\">=<\/span> []<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L31\" class=\"blob-num js-line-number\" data-line-number=\"31\"><\/td>\n                    <td id=\"LC31\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.chain <span class=\"pl-k\">=<\/span> []<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L32\" class=\"blob-num js-line-number\" data-line-number=\"32\"><\/td>\n                    <td id=\"LC32\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.create_genesis_block ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L33\" class=\"blob-num js-line-number\" data-line-number=\"33\"><\/td>\n                    <td id=\"LC33\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L34\" class=\"blob-num js-line-number\" data-line-number=\"34\"><\/td>\n                    <td id=\"LC34\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">create_genesis_block<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L35\" class=\"blob-num js-line-number\" data-line-number=\"35\"><\/td>\n                    <td id=\"LC35\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L36\" class=\"blob-num js-line-number\" data-line-number=\"36\"><\/td>\n                    <td id=\"LC36\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        A function to generate genesis block and appends it to<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L37\" class=\"blob-num js-line-number\" data-line-number=\"37\"><\/td>\n                    <td id=\"LC37\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        the chain. The block has index 0, previous_hash as 0, and<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L38\" class=\"blob-num js-line-number\" data-line-number=\"38\"><\/td>\n                    <td id=\"LC38\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        a valid hash.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L39\" class=\"blob-num js-line-number\" data-line-number=\"39\"><\/td>\n                    <td id=\"LC39\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L40\" class=\"blob-num js-line-number\" data-line-number=\"40\"><\/td>\n                    <td id=\"LC40\" class=\"blob-code blob-code-inner js-file-line\">        genesis_block <span class=\"pl-k\">=<\/span> Block (<span class=\"pl-c1\">0<\/span>, [], time.time (), <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>0<span class=\"pl-pds\">&quot;<\/span><\/span>)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L41\" class=\"blob-num js-line-number\" data-line-number=\"41\"><\/td>\n                    <td id=\"LC41\" class=\"blob-code blob-code-inner js-file-line\">        genesis_block.hash <span class=\"pl-k\">=<\/span> genesis_block.compute_hash ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L42\" class=\"blob-num js-line-number\" data-line-number=\"42\"><\/td>\n                    <td id=\"LC42\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.chain.append (genesis_block)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L43\" class=\"blob-num js-line-number\" data-line-number=\"43\"><\/td>\n                    <td id=\"LC43\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L44\" class=\"blob-num js-line-number\" data-line-number=\"44\"><\/td>\n                    <td id=\"LC44\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-en\">@<\/span><span class=\"pl-c1\">property<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L45\" class=\"blob-num js-line-number\" data-line-number=\"45\"><\/td>\n                    <td id=\"LC45\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">last_block<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L46\" class=\"blob-num js-line-number\" data-line-number=\"46\"><\/td>\n                    <td id=\"LC46\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">self<\/span>.chain [<span class=\"pl-k\">&#8211;<\/span><span class=\"pl-c1\">1<\/span>]<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L47\" class=\"blob-num js-line-number\" data-line-number=\"47\"><\/td>\n                    <td id=\"LC47\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L48\" class=\"blob-num js-line-number\" data-line-number=\"48\"><\/td>\n                    <td id=\"LC48\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">add_block<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>, <span class=\"pl-smi\">block<\/span>, <span class=\"pl-smi\">proof<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L49\" class=\"blob-num js-line-number\" data-line-number=\"49\"><\/td>\n                    <td id=\"LC49\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L50\" class=\"blob-num js-line-number\" data-line-number=\"50\"><\/td>\n                    <td id=\"LC50\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        A function that adds the block to the chain after verification.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L51\" class=\"blob-num js-line-number\" data-line-number=\"51\"><\/td>\n                    <td id=\"LC51\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        Verification includes:<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L52\" class=\"blob-num js-line-number\" data-line-number=\"52\"><\/td>\n                    <td id=\"LC52\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        * Checking if the proof is valid.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L53\" class=\"blob-num js-line-number\" data-line-number=\"53\"><\/td>\n                    <td id=\"LC53\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        * The previous_hash referred to in the block and the hash of the last block<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L54\" class=\"blob-num js-line-number\" data-line-number=\"54\"><\/td>\n                    <td id=\"LC54\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">          in the chain match.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L55\" class=\"blob-num js-line-number\" data-line-number=\"55\"><\/td>\n                    <td id=\"LC55\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L56\" class=\"blob-num js-line-number\" data-line-number=\"56\"><\/td>\n                    <td id=\"LC56\" class=\"blob-code blob-code-inner js-file-line\">        previous_hash <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">self<\/span>.last_block.hash<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L57\" class=\"blob-num js-line-number\" data-line-number=\"57\"><\/td>\n                    <td id=\"LC57\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L58\" class=\"blob-num js-line-number\" data-line-number=\"58\"><\/td>\n                    <td id=\"LC58\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">if<\/span> previous_hash <span class=\"pl-k\">!=<\/span> block.previous_hash:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L59\" class=\"blob-num js-line-number\" data-line-number=\"59\"><\/td>\n                    <td id=\"LC59\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">False<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L60\" class=\"blob-num js-line-number\" data-line-number=\"60\"><\/td>\n                    <td id=\"LC60\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L61\" class=\"blob-num js-line-number\" data-line-number=\"61\"><\/td>\n                    <td id=\"LC61\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> Blockchain.is_valid_proof (block, proof):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L62\" class=\"blob-num js-line-number\" data-line-number=\"62\"><\/td>\n                    <td id=\"LC62\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">False<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L63\" class=\"blob-num js-line-number\" data-line-number=\"63\"><\/td>\n                    <td id=\"LC63\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L64\" class=\"blob-num js-line-number\" data-line-number=\"64\"><\/td>\n                    <td id=\"LC64\" class=\"blob-code blob-code-inner js-file-line\">        block.hash <span class=\"pl-k\">=<\/span> proof<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L65\" class=\"blob-num js-line-number\" data-line-number=\"65\"><\/td>\n                    <td id=\"LC65\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.chain.append (block)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L66\" class=\"blob-num js-line-number\" data-line-number=\"66\"><\/td>\n                    <td id=\"LC66\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">True<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L67\" class=\"blob-num js-line-number\" data-line-number=\"67\"><\/td>\n                    <td id=\"LC67\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L68\" class=\"blob-num js-line-number\" data-line-number=\"68\"><\/td>\n                    <td id=\"LC68\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">proof_of_work<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>, <span class=\"pl-smi\">block<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L69\" class=\"blob-num js-line-number\" data-line-number=\"69\"><\/td>\n                    <td id=\"LC69\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L70\" class=\"blob-num js-line-number\" data-line-number=\"70\"><\/td>\n                    <td id=\"LC70\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        Function that tries different values \u200b\u200bof nonce to get a hash<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L71\" class=\"blob-num js-line-number\" data-line-number=\"71\"><\/td>\n                    <td id=\"LC71\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        that satisfies our difficulty criteria.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L72\" class=\"blob-num js-line-number\" data-line-number=\"72\"><\/td>\n                    <td id=\"LC72\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L73\" class=\"blob-num js-line-number\" data-line-number=\"73\"><\/td>\n                    <td id=\"LC73\" class=\"blob-code blob-code-inner js-file-line\">        block.nonce <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">0<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L74\" class=\"blob-num js-line-number\" data-line-number=\"74\"><\/td>\n                    <td id=\"LC74\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L75\" class=\"blob-num js-line-number\" data-line-number=\"75\"><\/td>\n                    <td id=\"LC75\" class=\"blob-code blob-code-inner js-file-line\">        computed_hash <span class=\"pl-k\">=<\/span> block.compute_hash ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L76\" class=\"blob-num js-line-number\" data-line-number=\"76\"><\/td>\n                    <td id=\"LC76\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">while<\/span> <span class=\"pl-k\">not<\/span> computed_hash.startswith (<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>0<span class=\"pl-pds\">&#39;<\/span><\/span> <span class=\"pl-k\">*<\/span> Blockchain.difficulty):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L77\" class=\"blob-num js-line-number\" data-line-number=\"77\"><\/td>\n                    <td id=\"LC77\" class=\"blob-code blob-code-inner js-file-line\">            block.nonce <span class=\"pl-k\">+=<\/span> <span class=\"pl-c1\">1<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L78\" class=\"blob-num js-line-number\" data-line-number=\"78\"><\/td>\n                    <td id=\"LC78\" class=\"blob-code blob-code-inner js-file-line\">            computed_hash <span class=\"pl-k\">=<\/span> block.compute_hash ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L79\" class=\"blob-num js-line-number\" data-line-number=\"79\"><\/td>\n                    <td id=\"LC79\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L80\" class=\"blob-num js-line-number\" data-line-number=\"80\"><\/td>\n                    <td id=\"LC80\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> computed_hash<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L81\" class=\"blob-num js-line-number\" data-line-number=\"81\"><\/td>\n                    <td id=\"LC81\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L82\" class=\"blob-num js-line-number\" data-line-number=\"82\"><\/td>\n                    <td id=\"LC82\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">add_new_transaction<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>, <span class=\"pl-smi\">transaction<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L83\" class=\"blob-num js-line-number\" data-line-number=\"83\"><\/td>\n                    <td id=\"LC83\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.unconfirmed_transactions.append (transaction)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L84\" class=\"blob-num js-line-number\" data-line-number=\"84\"><\/td>\n                    <td id=\"LC84\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L85\" class=\"blob-num js-line-number\" data-line-number=\"85\"><\/td>\n                    <td id=\"LC85\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-en\">@<\/span><span class=\"pl-c1\">classmethod<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L86\" class=\"blob-num js-line-number\" data-line-number=\"86\"><\/td>\n                    <td id=\"LC86\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">is_valid_proof<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">cls<\/span><\/span>, <span class=\"pl-smi\">block<\/span>, <span class=\"pl-smi\">block_hash<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L87\" class=\"blob-num js-line-number\" data-line-number=\"87\"><\/td>\n                    <td id=\"LC87\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L88\" class=\"blob-num js-line-number\" data-line-number=\"88\"><\/td>\n                    <td id=\"LC88\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        Check if block_hash is valid hash of block and satisfies<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L89\" class=\"blob-num js-line-number\" data-line-number=\"89\"><\/td>\n                    <td id=\"LC89\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        the difficulty criteria<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L90\" class=\"blob-num js-line-number\" data-line-number=\"90\"><\/td>\n                    <td id=\"LC90\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L91\" class=\"blob-num js-line-number\" data-line-number=\"91\"><\/td>\n                    <td id=\"LC91\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> (block_hash.startswith (<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>0<span class=\"pl-pds\">&#39;<\/span><\/span> <span class=\"pl-k\">*<\/span> Blockchain.difficulty) <span class=\"pl-k\">and<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L92\" class=\"blob-num js-line-number\" data-line-number=\"92\"><\/td>\n                    <td id=\"LC92\" class=\"blob-code blob-code-inner js-file-line\">                block_hash <span class=\"pl-k\">==<\/span> block.compute_hash ())<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L93\" class=\"blob-num js-line-number\" data-line-number=\"93\"><\/td>\n                    <td id=\"LC93\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L94\" class=\"blob-num js-line-number\" data-line-number=\"94\"><\/td>\n                    <td id=\"LC94\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-en\">@<\/span><span class=\"pl-c1\">classmethod<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L95\" class=\"blob-num js-line-number\" data-line-number=\"95\"><\/td>\n                    <td id=\"LC95\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">check_chain_validity<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">cls<\/span><\/span>, <span class=\"pl-smi\">chain<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L96\" class=\"blob-num js-line-number\" data-line-number=\"96\"><\/td>\n                    <td id=\"LC96\" class=\"blob-code blob-code-inner js-file-line\">        result <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">True<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L97\" class=\"blob-num js-line-number\" data-line-number=\"97\"><\/td>\n                    <td id=\"LC97\" class=\"blob-code blob-code-inner js-file-line\">        previous_hash <span class=\"pl-k\">=<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>0<span class=\"pl-pds\">&quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L98\" class=\"blob-num js-line-number\" data-line-number=\"98\"><\/td>\n                    <td id=\"LC98\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L99\" class=\"blob-num js-line-number\" data-line-number=\"99\"><\/td>\n                    <td id=\"LC99\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">for<\/span> block <span class=\"pl-k\">in<\/span> chain:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L100\" class=\"blob-num js-line-number\" data-line-number=\"100\"><\/td>\n                    <td id=\"LC100\" class=\"blob-code blob-code-inner js-file-line\">            block_hash <span class=\"pl-k\">=<\/span> block.hash<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L101\" class=\"blob-num js-line-number\" data-line-number=\"101\"><\/td>\n                    <td id=\"LC101\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-c\"><span class=\"pl-c\">#<\/span> remove the hash field to recompute the hash again<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L102\" class=\"blob-num js-line-number\" data-line-number=\"102\"><\/td>\n                    <td id=\"LC102\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-c\"><span class=\"pl-c\">#<\/span> using `compute_hash` method.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L103\" class=\"blob-num js-line-number\" data-line-number=\"103\"><\/td>\n                    <td id=\"LC103\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-c1\">delattr<\/span>(block, <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>hash<span class=\"pl-pds\">&quot;<\/span><\/span>)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L104\" class=\"blob-num js-line-number\" data-line-number=\"104\"><\/td>\n                    <td id=\"LC104\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L105\" class=\"blob-num js-line-number\" data-line-number=\"105\"><\/td>\n                    <td id=\"LC105\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> <span class=\"pl-c1\">cls<\/span>.is_valid_proof (block, block.hash) <span class=\"pl-k\">or<\/span> \\<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L106\" class=\"blob-num js-line-number\" data-line-number=\"106\"><\/td>\n                    <td id=\"LC106\" class=\"blob-code blob-code-inner js-file-line\">                    previous_hash <span class=\"pl-k\">!=<\/span> block.previous_hash:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L107\" class=\"blob-num js-line-number\" data-line-number=\"107\"><\/td>\n                    <td id=\"LC107\" class=\"blob-code blob-code-inner js-file-line\">                result <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">False<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L108\" class=\"blob-num js-line-number\" data-line-number=\"108\"><\/td>\n                    <td id=\"LC108\" class=\"blob-code blob-code-inner js-file-line\">                <span class=\"pl-k\">break<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L109\" class=\"blob-num js-line-number\" data-line-number=\"109\"><\/td>\n                    <td id=\"LC109\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L110\" class=\"blob-num js-line-number\" data-line-number=\"110\"><\/td>\n                    <td id=\"LC110\" class=\"blob-code blob-code-inner js-file-line\">            block.hash, previous_hash <span class=\"pl-k\">=<\/span> block_hash, block_hash<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L111\" class=\"blob-num js-line-number\" data-line-number=\"111\"><\/td>\n                    <td id=\"LC111\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L112\" class=\"blob-num js-line-number\" data-line-number=\"112\"><\/td>\n                    <td id=\"LC112\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> result<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L113\" class=\"blob-num js-line-number\" data-line-number=\"113\"><\/td>\n                    <td id=\"LC113\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L114\" class=\"blob-num js-line-number\" data-line-number=\"114\"><\/td>\n                    <td id=\"LC114\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">def<\/span> <span class=\"pl-en\">mine<\/span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self<\/span><\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L115\" class=\"blob-num js-line-number\" data-line-number=\"115\"><\/td>\n                    <td id=\"LC115\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L116\" class=\"blob-num js-line-number\" data-line-number=\"116\"><\/td>\n                    <td id=\"LC116\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        This function serves as an interface to add the pending<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L117\" class=\"blob-num js-line-number\" data-line-number=\"117\"><\/td>\n                    <td id=\"LC117\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        transactions to the blockchain by adding them to the block<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L118\" class=\"blob-num js-line-number\" data-line-number=\"118\"><\/td>\n                    <td id=\"LC118\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        and figuring out Proof Of Work.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L119\" class=\"blob-num js-line-number\" data-line-number=\"119\"><\/td>\n                    <td id=\"LC119\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">        <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L120\" class=\"blob-num js-line-number\" data-line-number=\"120\"><\/td>\n                    <td id=\"LC120\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> <span class=\"pl-c1\">self<\/span>.unconfirmed_transactions:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L121\" class=\"blob-num js-line-number\" data-line-number=\"121\"><\/td>\n                    <td id=\"LC121\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">False<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L122\" class=\"blob-num js-line-number\" data-line-number=\"122\"><\/td>\n                    <td id=\"LC122\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L123\" class=\"blob-num js-line-number\" data-line-number=\"123\"><\/td>\n                    <td id=\"LC123\" class=\"blob-code blob-code-inner js-file-line\">        last_block <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">self<\/span>.last_block<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L124\" class=\"blob-num js-line-number\" data-line-number=\"124\"><\/td>\n                    <td id=\"LC124\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L125\" class=\"blob-num js-line-number\" data-line-number=\"125\"><\/td>\n                    <td id=\"LC125\" class=\"blob-code blob-code-inner js-file-line\">        new_block <span class=\"pl-k\">=<\/span> Block (<span class=\"pl-v\">index<\/span><span class=\"pl-k\">=<\/span>last_block.index <span class=\"pl-k\">+<\/span> <span class=\"pl-c1\">1<\/span>,<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L126\" class=\"blob-num js-line-number\" data-line-number=\"126\"><\/td>\n                    <td id=\"LC126\" class=\"blob-code blob-code-inner js-file-line\">                          <span class=\"pl-v\">transactions<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">self<\/span>.unconfirmed_transactions,<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L127\" class=\"blob-num js-line-number\" data-line-number=\"127\"><\/td>\n                    <td id=\"LC127\" class=\"blob-code blob-code-inner js-file-line\">                          <span class=\"pl-v\">timestamp<\/span><span class=\"pl-k\">=<\/span>time.time (),<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L128\" class=\"blob-num js-line-number\" data-line-number=\"128\"><\/td>\n                    <td id=\"LC128\" class=\"blob-code blob-code-inner js-file-line\">                          <span class=\"pl-v\">previous_hash<\/span><span class=\"pl-k\">=<\/span>last_block.hash)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L129\" class=\"blob-num js-line-number\" data-line-number=\"129\"><\/td>\n                    <td id=\"LC129\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L130\" class=\"blob-num js-line-number\" data-line-number=\"130\"><\/td>\n                    <td id=\"LC130\" class=\"blob-code blob-code-inner js-file-line\">        proof <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">self<\/span>.proof_of_work (new_block)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L131\" class=\"blob-num js-line-number\" data-line-number=\"131\"><\/td>\n                    <td id=\"LC131\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.add_block (new_block, proof)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L132\" class=\"blob-num js-line-number\" data-line-number=\"132\"><\/td>\n                    <td id=\"LC132\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L133\" class=\"blob-num js-line-number\" data-line-number=\"133\"><\/td>\n                    <td id=\"LC133\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self<\/span>.unconfirmed_transactions <span class=\"pl-k\">=<\/span> []<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L134\" class=\"blob-num js-line-number\" data-line-number=\"134\"><\/td>\n                    <td id=\"LC134\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c\"><span class=\"pl-c\">#<\/span> announce it to the network<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L135\" class=\"blob-num js-line-number\" data-line-number=\"135\"><\/td>\n                    <td id=\"LC135\" class=\"blob-code blob-code-inner js-file-line\">        announce_new_block (new_block)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L136\" class=\"blob-num js-line-number\" data-line-number=\"136\"><\/td>\n                    <td id=\"LC136\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> new_block.index<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L137\" class=\"blob-num js-line-number\" data-line-number=\"137\"><\/td>\n                    <td id=\"LC137\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L138\" class=\"blob-num js-line-number\" data-line-number=\"138\"><\/td>\n                    <td id=\"LC138\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L139\" class=\"blob-num js-line-number\" data-line-number=\"139\"><\/td>\n                    <td id=\"LC139\" class=\"blob-code blob-code-inner js-file-line\">app <span class=\"pl-k\">=<\/span> Flask (<span class=\"pl-c1\">__yam__<\/span>)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L140\" class=\"blob-num js-line-number\" data-line-number=\"140\"><\/td>\n                    <td id=\"LC140\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L141\" class=\"blob-num js-line-number\" data-line-number=\"141\"><\/td>\n                    <td id=\"LC141\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> the node&#039;s copy of blockchain<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L142\" class=\"blob-num js-line-number\" data-line-number=\"142\"><\/td>\n                    <td id=\"LC142\" class=\"blob-code blob-code-inner js-file-line\">blockchain <span class=\"pl-k\">=<\/span> Blockchain ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L143\" class=\"blob-num js-line-number\" data-line-number=\"143\"><\/td>\n                    <td id=\"LC143\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L144\" class=\"blob-num js-line-number\" data-line-number=\"144\"><\/td>\n                    <td id=\"LC144\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> the address to other participating members of the network<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L145\" class=\"blob-num js-line-number\" data-line-number=\"145\"><\/td>\n                    <td id=\"LC145\" class=\"blob-code blob-code-inner js-file-line\">peers <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">set<\/span>()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L146\" class=\"blob-num js-line-number\" data-line-number=\"146\"><\/td>\n                    <td id=\"LC146\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L147\" class=\"blob-num js-line-number\" data-line-number=\"147\"><\/td>\n                    <td id=\"LC147\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L148\" class=\"blob-num js-line-number\" data-line-number=\"148\"><\/td>\n                    <td id=\"LC148\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> endpoint to submit a new transaction. This will be used by<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L149\" class=\"blob-num js-line-number\" data-line-number=\"149\"><\/td>\n                    <td id=\"LC149\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> our application to add new data (posts) to the blockchain<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L150\" class=\"blob-num js-line-number\" data-line-number=\"150\"><\/td>\n                    <td id=\"LC150\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ new_transaction<span class=\"pl-pds\">&#39;<\/span><\/span>, <span class=\"pl-v\">methods<\/span><span class=\"pl-k\">=<\/span>[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>POST<span class=\"pl-pds\">&#39;<\/span><\/span>])<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L151\" class=\"blob-num js-line-number\" data-line-number=\"151\"><\/td>\n                    <td id=\"LC151\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">new_transaction<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L152\" class=\"blob-num js-line-number\" data-line-number=\"152\"><\/td>\n                    <td id=\"LC152\" class=\"blob-code blob-code-inner js-file-line\">    tx_data <span class=\"pl-k\">=<\/span> request.get_json ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L153\" class=\"blob-num js-line-number\" data-line-number=\"153\"><\/td>\n                    <td id=\"LC153\" class=\"blob-code blob-code-inner js-file-line\">    required_fields <span class=\"pl-k\">=<\/span> [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>author<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>content<span class=\"pl-pds\">&quot;<\/span><\/span>]<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L154\" class=\"blob-num js-line-number\" data-line-number=\"154\"><\/td>\n                    <td id=\"LC154\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L155\" class=\"blob-num js-line-number\" data-line-number=\"155\"><\/td>\n                    <td id=\"LC155\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">for<\/span> field <span class=\"pl-k\">in<\/span> required_fields:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L156\" class=\"blob-num js-line-number\" data-line-number=\"156\"><\/td>\n                    <td id=\"LC156\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> tx_data.get (field):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L157\" class=\"blob-num js-line-number\" data-line-number=\"157\"><\/td>\n                    <td id=\"LC157\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>Invlaid transaction data<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-c1\">404<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L158\" class=\"blob-num js-line-number\" data-line-number=\"158\"><\/td>\n                    <td id=\"LC158\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L159\" class=\"blob-num js-line-number\" data-line-number=\"159\"><\/td>\n                    <td id=\"LC159\" class=\"blob-code blob-code-inner js-file-line\">    tx_data [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>timestamp<span class=\"pl-pds\">&quot;<\/span><\/span>] <span class=\"pl-k\">=<\/span> time.time ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L160\" class=\"blob-num js-line-number\" data-line-number=\"160\"><\/td>\n                    <td id=\"LC160\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L161\" class=\"blob-num js-line-number\" data-line-number=\"161\"><\/td>\n                    <td id=\"LC161\" class=\"blob-code blob-code-inner js-file-line\">    blockchain.add_new_transaction (tx_data)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L162\" class=\"blob-num js-line-number\" data-line-number=\"162\"><\/td>\n                    <td id=\"LC162\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L163\" class=\"blob-num js-line-number\" data-line-number=\"163\"><\/td>\n                    <td id=\"LC163\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>Success<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-c1\">201<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L164\" class=\"blob-num js-line-number\" data-line-number=\"164\"><\/td>\n                    <td id=\"LC164\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L165\" class=\"blob-num js-line-number\" data-line-number=\"165\"><\/td>\n                    <td id=\"LC165\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L166\" class=\"blob-num js-line-number\" data-line-number=\"166\"><\/td>\n                    <td id=\"LC166\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> endpoint to return the node&#039;s copy of the chain.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L167\" class=\"blob-num js-line-number\" data-line-number=\"167\"><\/td>\n                    <td id=\"LC167\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> Our application will be using this endpoint to query<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L168\" class=\"blob-num js-line-number\" data-line-number=\"168\"><\/td>\n                    <td id=\"LC168\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> all the posts to display.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L169\" class=\"blob-num js-line-number\" data-line-number=\"169\"><\/td>\n                    <td id=\"LC169\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ chain<span class=\"pl-pds\">&#39;<\/span><\/span>, <span class=\"pl-v\">methods<\/span><span class=\"pl-k\">=<\/span>[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>GET<span class=\"pl-pds\">&#39;<\/span><\/span>])<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L170\" class=\"blob-num js-line-number\" data-line-number=\"170\"><\/td>\n                    <td id=\"LC170\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">get_chain<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L171\" class=\"blob-num js-line-number\" data-line-number=\"171\"><\/td>\n                    <td id=\"LC171\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#<\/span> make sure we&#039;ve the longest chain<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L172\" class=\"blob-num js-line-number\" data-line-number=\"172\"><\/td>\n                    <td id=\"LC172\" class=\"blob-code blob-code-inner js-file-line\">    consensus ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L173\" class=\"blob-num js-line-number\" data-line-number=\"173\"><\/td>\n                    <td id=\"LC173\" class=\"blob-code blob-code-inner js-file-line\">    chain_data <span class=\"pl-k\">=<\/span> []<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L174\" class=\"blob-num js-line-number\" data-line-number=\"174\"><\/td>\n                    <td id=\"LC174\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">for<\/span> block <span class=\"pl-k\">in<\/span> blockchain.chain:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L175\" class=\"blob-num js-line-number\" data-line-number=\"175\"><\/td>\n                    <td id=\"LC175\" class=\"blob-code blob-code-inner js-file-line\">        chain_data.append (block.<span class=\"pl-c1\">__dict__<\/span>)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L176\" class=\"blob-num js-line-number\" data-line-number=\"176\"><\/td>\n                    <td id=\"LC176\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> json.dumps ({<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>length<span class=\"pl-pds\">&quot;<\/span><\/span>: <span class=\"pl-c1\">len<\/span>(chain_data),<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L177\" class=\"blob-num js-line-number\" data-line-number=\"177\"><\/td>\n                    <td id=\"LC177\" class=\"blob-code blob-code-inner js-file-line\">                       <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>chain<span class=\"pl-pds\">&quot;<\/span><\/span>: chain_data})<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L178\" class=\"blob-num js-line-number\" data-line-number=\"178\"><\/td>\n                    <td id=\"LC178\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L179\" class=\"blob-num js-line-number\" data-line-number=\"179\"><\/td>\n                    <td id=\"LC179\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L180\" class=\"blob-num js-line-number\" data-line-number=\"180\"><\/td>\n                    <td id=\"LC180\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> endpoint to request the node to mine the unconfirmed<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L181\" class=\"blob-num js-line-number\" data-line-number=\"181\"><\/td>\n                    <td id=\"LC181\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> transactions (if any). We&#039;ll be using it to initiate<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L182\" class=\"blob-num js-line-number\" data-line-number=\"182\"><\/td>\n                    <td id=\"LC182\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> a command to mine from our application itself.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L183\" class=\"blob-num js-line-number\" data-line-number=\"183\"><\/td>\n                    <td id=\"LC183\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ mine<span class=\"pl-pds\">&#39;<\/span><\/span>, <span class=\"pl-v\">methods<\/span><span class=\"pl-k\">=<\/span>[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>GET<span class=\"pl-pds\">&#39;<\/span><\/span>])<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L184\" class=\"blob-num js-line-number\" data-line-number=\"184\"><\/td>\n                    <td id=\"LC184\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">mine_unconfirmed_transactions<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L185\" class=\"blob-num js-line-number\" data-line-number=\"185\"><\/td>\n                    <td id=\"LC185\" class=\"blob-code blob-code-inner js-file-line\">    result <span class=\"pl-k\">=<\/span> blockchain.mine ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L186\" class=\"blob-num js-line-number\" data-line-number=\"186\"><\/td>\n                    <td id=\"LC186\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> result:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L187\" class=\"blob-num js-line-number\" data-line-number=\"187\"><\/td>\n                    <td id=\"LC187\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>No transactions to mine<span class=\"pl-pds\">&quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L188\" class=\"blob-num js-line-number\" data-line-number=\"188\"><\/td>\n                    <td id=\"LC188\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>Block #<span class=\"pl-c1\">{}<\/span> is mined.<span class=\"pl-pds\">&quot;<\/span><\/span>.format (result)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L189\" class=\"blob-num js-line-number\" data-line-number=\"189\"><\/td>\n                    <td id=\"LC189\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L190\" class=\"blob-num js-line-number\" data-line-number=\"190\"><\/td>\n                    <td id=\"LC190\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L191\" class=\"blob-num js-line-number\" data-line-number=\"191\"><\/td>\n                    <td id=\"LC191\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> endpoint to add new peers to the network.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L192\" class=\"blob-num js-line-number\" data-line-number=\"192\"><\/td>\n                    <td id=\"LC192\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ add_nodes<span class=\"pl-pds\">&#39;<\/span><\/span>, <span class=\"pl-v\">methods<\/span><span class=\"pl-k\">=<\/span>[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>POST<span class=\"pl-pds\">&#39;<\/span><\/span>])<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L193\" class=\"blob-num js-line-number\" data-line-number=\"193\"><\/td>\n                    <td id=\"LC193\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">register_new_peers<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L194\" class=\"blob-num js-line-number\" data-line-number=\"194\"><\/td>\n                    <td id=\"LC194\" class=\"blob-code blob-code-inner js-file-line\">    do not give <span class=\"pl-k\">=<\/span> request.get_json ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L195\" class=\"blob-num js-line-number\" data-line-number=\"195\"><\/td>\n                    <td id=\"LC195\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> do not give:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L196\" class=\"blob-num js-line-number\" data-line-number=\"196\"><\/td>\n                    <td id=\"LC196\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>Invalid data<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-c1\">400<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L197\" class=\"blob-num js-line-number\" data-line-number=\"197\"><\/td>\n                    <td id=\"LC197\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">for<\/span> do not give <span class=\"pl-k\">in<\/span> do not give:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L198\" class=\"blob-num js-line-number\" data-line-number=\"198\"><\/td>\n                    <td id=\"LC198\" class=\"blob-code blob-code-inner js-file-line\">        peers.add (node)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L199\" class=\"blob-num js-line-number\" data-line-number=\"199\"><\/td>\n                    <td id=\"LC199\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L200\" class=\"blob-num js-line-number\" data-line-number=\"200\"><\/td>\n                    <td id=\"LC200\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>Success<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-c1\">201<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L201\" class=\"blob-num js-line-number\" data-line-number=\"201\"><\/td>\n                    <td id=\"LC201\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L202\" class=\"blob-num js-line-number\" data-line-number=\"202\"><\/td>\n                    <td id=\"LC202\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L203\" class=\"blob-num js-line-number\" data-line-number=\"203\"><\/td>\n                    <td id=\"LC203\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> endpoint to add a block mined by someone else to<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L204\" class=\"blob-num js-line-number\" data-line-number=\"204\"><\/td>\n                    <td id=\"LC204\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> the node&#039;s chain. The block is first verified by the node<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L205\" class=\"blob-num js-line-number\" data-line-number=\"205\"><\/td>\n                    <td id=\"LC205\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> and then added to the chain.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L206\" class=\"blob-num js-line-number\" data-line-number=\"206\"><\/td>\n                    <td id=\"LC206\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ add_block<span class=\"pl-pds\">&#39;<\/span><\/span>, <span class=\"pl-v\">methods<\/span><span class=\"pl-k\">=<\/span>[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>POST<span class=\"pl-pds\">&#39;<\/span><\/span>])<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L207\" class=\"blob-num js-line-number\" data-line-number=\"207\"><\/td>\n                    <td id=\"LC207\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">validate_and_add_block<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L208\" class=\"blob-num js-line-number\" data-line-number=\"208\"><\/td>\n                    <td id=\"LC208\" class=\"blob-code blob-code-inner js-file-line\">    block_data <span class=\"pl-k\">=<\/span> request.get_json ()<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L209\" class=\"blob-num js-line-number\" data-line-number=\"209\"><\/td>\n                    <td id=\"LC209\" class=\"blob-code blob-code-inner js-file-line\">    block <span class=\"pl-k\">=<\/span> Block (block_data [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>index<span class=\"pl-pds\">&quot;<\/span><\/span>],<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L210\" class=\"blob-num js-line-number\" data-line-number=\"210\"><\/td>\n                    <td id=\"LC210\" class=\"blob-code blob-code-inner js-file-line\">                  block_data [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>transactions<span class=\"pl-pds\">&quot;<\/span><\/span>],<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L211\" class=\"blob-num js-line-number\" data-line-number=\"211\"><\/td>\n                    <td id=\"LC211\" class=\"blob-code blob-code-inner js-file-line\">                  block_data [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>timestamp<span class=\"pl-pds\">&quot;<\/span><\/span>,<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L212\" class=\"blob-num js-line-number\" data-line-number=\"212\"><\/td>\n                    <td id=\"LC212\" class=\"blob-code blob-code-inner js-file-line\">                  block_data [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>previous_hash<span class=\"pl-pds\">&quot;<\/span><\/span>]])<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L213\" class=\"blob-num js-line-number\" data-line-number=\"213\"><\/td>\n                    <td id=\"LC213\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L214\" class=\"blob-num js-line-number\" data-line-number=\"214\"><\/td>\n                    <td id=\"LC214\" class=\"blob-code blob-code-inner js-file-line\">    proof <span class=\"pl-k\">=<\/span> block_data [<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>hash<span class=\"pl-pds\">&#39;<\/span><\/span>]<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L215\" class=\"blob-num js-line-number\" data-line-number=\"215\"><\/td>\n                    <td id=\"LC215\" class=\"blob-code blob-code-inner js-file-line\">    added <span class=\"pl-k\">=<\/span> blockchain.add_block (block, proof)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L216\" class=\"blob-num js-line-number\" data-line-number=\"216\"><\/td>\n                    <td id=\"LC216\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L217\" class=\"blob-num js-line-number\" data-line-number=\"217\"><\/td>\n                    <td id=\"LC217\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if<\/span> <span class=\"pl-k\">not<\/span> added:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L218\" class=\"blob-num js-line-number\" data-line-number=\"218\"><\/td>\n                    <td id=\"LC218\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>The block was discarded by the node<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-c1\">400<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L219\" class=\"blob-num js-line-number\" data-line-number=\"219\"><\/td>\n                    <td id=\"LC219\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L220\" class=\"blob-num js-line-number\" data-line-number=\"220\"><\/td>\n                    <td id=\"LC220\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>Block added to the chain<span class=\"pl-pds\">&quot;<\/span><\/span>, <span class=\"pl-c1\">201<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L221\" class=\"blob-num js-line-number\" data-line-number=\"221\"><\/td>\n                    <td id=\"LC221\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L222\" class=\"blob-num js-line-number\" data-line-number=\"222\"><\/td>\n                    <td id=\"LC222\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L223\" class=\"blob-num js-line-number\" data-line-number=\"223\"><\/td>\n                    <td id=\"LC223\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> endpoint to query unconfirmed transactions<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L224\" class=\"blob-num js-line-number\" data-line-number=\"224\"><\/td>\n                    <td id=\"LC224\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ pending_tx<span class=\"pl-pds\">&#39;<\/span><\/span>)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L225\" class=\"blob-num js-line-number\" data-line-number=\"225\"><\/td>\n                    <td id=\"LC225\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">get_pending_tx<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L226\" class=\"blob-num js-line-number\" data-line-number=\"226\"><\/td>\n                    <td id=\"LC226\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> json.dumps (blockchain.unconfirmed_transactions)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L227\" class=\"blob-num js-line-number\" data-line-number=\"227\"><\/td>\n                    <td id=\"LC227\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L228\" class=\"blob-num js-line-number\" data-line-number=\"228\"><\/td>\n                    <td id=\"LC228\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L229\" class=\"blob-num js-line-number\" data-line-number=\"229\"><\/td>\n                    <td id=\"LC229\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">consensus<\/span>():<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L230\" class=\"blob-num js-line-number\" data-line-number=\"230\"><\/td>\n                    <td id=\"LC230\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L231\" class=\"blob-num js-line-number\" data-line-number=\"231\"><\/td>\n                    <td id=\"LC231\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    Our simple consnsus algorithm. If a longer valid chain is<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L232\" class=\"blob-num js-line-number\" data-line-number=\"232\"><\/td>\n                    <td id=\"LC232\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    found, our chain is replaced with it.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L233\" class=\"blob-num js-line-number\" data-line-number=\"233\"><\/td>\n                    <td id=\"LC233\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L234\" class=\"blob-num js-line-number\" data-line-number=\"234\"><\/td>\n                    <td id=\"LC234\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">global<\/span> blockchain<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L235\" class=\"blob-num js-line-number\" data-line-number=\"235\"><\/td>\n                    <td id=\"LC235\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L236\" class=\"blob-num js-line-number\" data-line-number=\"236\"><\/td>\n                    <td id=\"LC236\" class=\"blob-code blob-code-inner js-file-line\">    longest_chain <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">None<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L237\" class=\"blob-num js-line-number\" data-line-number=\"237\"><\/td>\n                    <td id=\"LC237\" class=\"blob-code blob-code-inner js-file-line\">    current_len <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">len<\/span>(blockchain.chain)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L238\" class=\"blob-num js-line-number\" data-line-number=\"238\"><\/td>\n                    <td id=\"LC238\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L239\" class=\"blob-num js-line-number\" data-line-number=\"239\"><\/td>\n                    <td id=\"LC239\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">for<\/span> do not give <span class=\"pl-k\">in<\/span> peers:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L240\" class=\"blob-num js-line-number\" data-line-number=\"240\"><\/td>\n                    <td id=\"LC240\" class=\"blob-code blob-code-inner js-file-line\">        response <span class=\"pl-k\">=<\/span> requests.get (<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>http: \/\/<span class=\"pl-c1\">{}<\/span>\/ chain<span class=\"pl-pds\">&#39;<\/span><\/span>.format (node))<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L241\" class=\"blob-num js-line-number\" data-line-number=\"241\"><\/td>\n                    <td id=\"LC241\" class=\"blob-code blob-code-inner js-file-line\">        length <span class=\"pl-k\">=<\/span> response.json () [<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>length<span class=\"pl-pds\">&#39;<\/span><\/span>]<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L242\" class=\"blob-num js-line-number\" data-line-number=\"242\"><\/td>\n                    <td id=\"LC242\" class=\"blob-code blob-code-inner js-file-line\">        chain <span class=\"pl-k\">=<\/span> response.json () [<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>chain<span class=\"pl-pds\">&#39;<\/span><\/span>]<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L243\" class=\"blob-num js-line-number\" data-line-number=\"243\"><\/td>\n                    <td id=\"LC243\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">if<\/span> length <span class=\"pl-k\">&gt;<\/span> current_len <span class=\"pl-k\">and<\/span> blockchain.check_chain_validity (chain):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L244\" class=\"blob-num js-line-number\" data-line-number=\"244\"><\/td>\n                    <td id=\"LC244\" class=\"blob-code blob-code-inner js-file-line\">            current_len <span class=\"pl-k\">=<\/span> length<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L245\" class=\"blob-num js-line-number\" data-line-number=\"245\"><\/td>\n                    <td id=\"LC245\" class=\"blob-code blob-code-inner js-file-line\">            longest_chain <span class=\"pl-k\">=<\/span> chain<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L246\" class=\"blob-num js-line-number\" data-line-number=\"246\"><\/td>\n                    <td id=\"LC246\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L247\" class=\"blob-num js-line-number\" data-line-number=\"247\"><\/td>\n                    <td id=\"LC247\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if<\/span> longest_chain:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L248\" class=\"blob-num js-line-number\" data-line-number=\"248\"><\/td>\n                    <td id=\"LC248\" class=\"blob-code blob-code-inner js-file-line\">        blockchain <span class=\"pl-k\">=<\/span> longest_chain<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L249\" class=\"blob-num js-line-number\" data-line-number=\"249\"><\/td>\n                    <td id=\"LC249\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">True<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L250\" class=\"blob-num js-line-number\" data-line-number=\"250\"><\/td>\n                    <td id=\"LC250\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L251\" class=\"blob-num js-line-number\" data-line-number=\"251\"><\/td>\n                    <td id=\"LC251\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">False<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L252\" class=\"blob-num js-line-number\" data-line-number=\"252\"><\/td>\n                    <td id=\"LC252\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L253\" class=\"blob-num js-line-number\" data-line-number=\"253\"><\/td>\n                    <td id=\"LC253\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L254\" class=\"blob-num js-line-number\" data-line-number=\"254\"><\/td>\n                    <td id=\"LC254\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">announce_new_block<\/span>(<span class=\"pl-smi\">block<\/span>):<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L255\" class=\"blob-num js-line-number\" data-line-number=\"255\"><\/td>\n                    <td id=\"LC255\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L256\" class=\"blob-num js-line-number\" data-line-number=\"256\"><\/td>\n                    <td id=\"LC256\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    A function to announce to the network once a block has been mined.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L257\" class=\"blob-num js-line-number\" data-line-number=\"257\"><\/td>\n                    <td id=\"LC257\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    Other blocks can simply verify the proof of work and add it to their<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L258\" class=\"blob-num js-line-number\" data-line-number=\"258\"><\/td>\n                    <td id=\"LC258\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    respective chains.<\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L259\" class=\"blob-num js-line-number\" data-line-number=\"259\"><\/td>\n                    <td id=\"LC259\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L260\" class=\"blob-num js-line-number\" data-line-number=\"260\"><\/td>\n                    <td id=\"LC260\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">for<\/span> peer <span class=\"pl-k\">in<\/span> peers:<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L261\" class=\"blob-num js-line-number\" data-line-number=\"261\"><\/td>\n                    <td id=\"LC261\" class=\"blob-code blob-code-inner js-file-line\">        url <span class=\"pl-k\">=<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>http: \/\/<span class=\"pl-c1\">{}<\/span>\/ add_block<span class=\"pl-pds\">&quot;<\/span><\/span>.format (peer)<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L262\" class=\"blob-num js-line-number\" data-line-number=\"262\"><\/td>\n                    <td id=\"LC262\" class=\"blob-code blob-code-inner js-file-line\">        requests.post (url, <span class=\"pl-v\">data<\/span><span class=\"pl-k\">=<\/span>json.dumps (block.<span class=\"pl-c1\">__dict__<\/span>, <span class=\"pl-v\">sort_keys<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">True<\/span>))<\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L263\" class=\"blob-num js-line-number\" data-line-number=\"263\"><\/td>\n                    <td id=\"LC263\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L264\" class=\"blob-num js-line-number\" data-line-number=\"264\"><\/td>\n                    <td id=\"LC264\" class=\"blob-code blob-code-inner js-file-line\">\n                    <\/td>\n                <\/tr>\n                <tr>\n                    <td id=\"L265\" class=\"blob-num js-line-number\" data-line-number=\"265\"><\/td>\n                    <td id=\"LC265\" class=\"blob-code blob-code-inner js-file-line\">app.run (<span class=\"pl-v\">debug<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">True<\/span>, <span class=\"pl-v\">port<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">8000<\/span>)<\/td>\n                <\/tr>\n            <\/table>\n\n\n        <\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>The view of the client application is as follows with the view.py file<\/p>\n\n\n\n<div class=\"file-info\">\n            73 lines (55 sloc)\n            <span class=\"file-info-divider\"><\/span>\n            1.96 KB\n        <\/div>\n\n    <div itemprop=\"text\" class=\"blob-wrapper data type-python\">\n        <table class=\"highlight tab-size js-file-line-container\" data-tab-size=\"8\">\n            <tr>\n                <td id=\"L1\" class=\"blob-num js-line-number\" data-line-number=\"1\"><\/td>\n                <td id=\"LC1\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import<\/span> datetime<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L2\" class=\"blob-num js-line-number\" data-line-number=\"2\"><\/td>\n                <td id=\"LC2\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import<\/span> json<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L3\" class=\"blob-num js-line-number\" data-line-number=\"3\"><\/td>\n                <td id=\"LC3\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L4\" class=\"blob-num js-line-number\" data-line-number=\"4\"><\/td>\n                <td id=\"LC4\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import<\/span> requests<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L5\" class=\"blob-num js-line-number\" data-line-number=\"5\"><\/td>\n                <td id=\"LC5\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">desde<\/span> flask <span class=\"pl-k\">import<\/span> render_template, redirect, request<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L6\" class=\"blob-num js-line-number\" data-line-number=\"6\"><\/td>\n                <td id=\"LC6\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L7\" class=\"blob-num js-line-number\" data-line-number=\"7\"><\/td>\n                <td id=\"LC7\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">desde<\/span> app <span class=\"pl-k\">import<\/span> app<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L8\" class=\"blob-num js-line-number\" data-line-number=\"8\"><\/td>\n                <td id=\"LC8\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L9\" class=\"blob-num js-line-number\" data-line-number=\"9\"><\/td>\n                <td id=\"LC9\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> The node with which our application interacts, there can be multiple<\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L10\" class=\"blob-num js-line-number\" data-line-number=\"10\"><\/td>\n                <td id=\"LC10\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#<\/span> such nodes as well.<\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L11\" class=\"blob-num js-line-number\" data-line-number=\"11\"><\/td>\n                <td id=\"LC11\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c1\">CONNECTED_NODE_ADDRESS<\/span> <span class=\"pl-k\">=<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>http:\/\/127.0.0.1:8000<span class=\"pl-pds\">&quot;<\/span><\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L12\" class=\"blob-num js-line-number\" data-line-number=\"12\"><\/td>\n                <td id=\"LC12\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L13\" class=\"blob-num js-line-number\" data-line-number=\"13\"><\/td>\n                <td id=\"LC13\" class=\"blob-code blob-code-inner js-file-line\">posts <span class=\"pl-k\">=<\/span> []<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L14\" class=\"blob-num js-line-number\" data-line-number=\"14\"><\/td>\n                <td id=\"LC14\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L15\" class=\"blob-num js-line-number\" data-line-number=\"15\"><\/td>\n                <td id=\"LC15\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L16\" class=\"blob-num js-line-number\" data-line-number=\"16\"><\/td>\n                <td id=\"LC16\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">fetch_posts<\/span>():<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L17\" class=\"blob-num js-line-number\" data-line-number=\"17\"><\/td>\n                <td id=\"LC17\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L18\" class=\"blob-num js-line-number\" data-line-number=\"18\"><\/td>\n                <td id=\"LC18\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    Function to fetch the chain from a blockchain node, parse the<\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L19\" class=\"blob-num js-line-number\" data-line-number=\"19\"><\/td>\n                <td id=\"LC19\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    data and store it locally.<\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L20\" class=\"blob-num js-line-number\" data-line-number=\"20\"><\/td>\n                <td id=\"LC20\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L21\" class=\"blob-num js-line-number\" data-line-number=\"21\"><\/td>\n                <td id=\"LC21\" class=\"blob-code blob-code-inner js-file-line\">    get_chain_address <span class=\"pl-k\">=<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span><span class=\"pl-c1\">{}<\/span>\/ chain<span class=\"pl-pds\">&quot;<\/span><\/span>.format (<span class=\"pl-c1\">CONNECTED_NODE_ADDRESS<\/span>)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L22\" class=\"blob-num js-line-number\" data-line-number=\"22\"><\/td>\n                <td id=\"LC22\" class=\"blob-code blob-code-inner js-file-line\">    response <span class=\"pl-k\">=<\/span> requests.get (get_chain_address)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L23\" class=\"blob-num js-line-number\" data-line-number=\"23\"><\/td>\n                <td id=\"LC23\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if<\/span> response.status_code <span class=\"pl-k\">==<\/span> <span class=\"pl-c1\">200<\/span>:<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L24\" class=\"blob-num js-line-number\" data-line-number=\"24\"><\/td>\n                <td id=\"LC24\" class=\"blob-code blob-code-inner js-file-line\">        content <span class=\"pl-k\">=<\/span> []<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L25\" class=\"blob-num js-line-number\" data-line-number=\"25\"><\/td>\n                <td id=\"LC25\" class=\"blob-code blob-code-inner js-file-line\">        chain <span class=\"pl-k\">=<\/span> json.loads (response.content)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L26\" class=\"blob-num js-line-number\" data-line-number=\"26\"><\/td>\n                <td id=\"LC26\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">for<\/span> block <span class=\"pl-k\">in<\/span> chain [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>chain<span class=\"pl-pds\">&quot;<\/span><\/span>]:<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L27\" class=\"blob-num js-line-number\" data-line-number=\"27\"><\/td>\n                <td id=\"LC27\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-k\">for<\/span> tx <span class=\"pl-k\">in<\/span> block [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>transactions<span class=\"pl-pds\">&quot;<\/span><\/span>]:<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L28\" class=\"blob-num js-line-number\" data-line-number=\"28\"><\/td>\n                <td id=\"LC28\" class=\"blob-code blob-code-inner js-file-line\">                tx [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>index<span class=\"pl-pds\">&quot;<\/span><\/span>] <span class=\"pl-k\">=<\/span> block [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>index<span class=\"pl-pds\">&quot;<\/span><\/span>]<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L29\" class=\"blob-num js-line-number\" data-line-number=\"29\"><\/td>\n                <td id=\"LC29\" class=\"blob-code blob-code-inner js-file-line\">                tx [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>hash<span class=\"pl-pds\">&quot;<\/span><\/span>] <span class=\"pl-k\">=<\/span> block [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>previous_hash<span class=\"pl-pds\">&quot;<\/span><\/span>]<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L30\" class=\"blob-num js-line-number\" data-line-number=\"30\"><\/td>\n                <td id=\"LC30\" class=\"blob-code blob-code-inner js-file-line\">                content.append (tx)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L31\" class=\"blob-num js-line-number\" data-line-number=\"31\"><\/td>\n                <td id=\"LC31\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L32\" class=\"blob-num js-line-number\" data-line-number=\"32\"><\/td>\n                <td id=\"LC32\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-k\">global<\/span> posts<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L33\" class=\"blob-num js-line-number\" data-line-number=\"33\"><\/td>\n                <td id=\"LC33\" class=\"blob-code blob-code-inner js-file-line\">        posts <span class=\"pl-k\">=<\/span> <span class=\"pl-c1\">sorted<\/span>(content, <span class=\"pl-v\">key<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-k\">lambda<\/span> <span class=\"pl-smi\">k<\/span>: k [<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>timestamp<span class=\"pl-pds\">&#39;<\/span><\/span>],<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L34\" class=\"blob-num js-line-number\" data-line-number=\"34\"><\/td>\n                <td id=\"LC34\" class=\"blob-code blob-code-inner js-file-line\">                       <span class=\"pl-v\">reverse<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">True<\/span>)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L35\" class=\"blob-num js-line-number\" data-line-number=\"35\"><\/td>\n                <td id=\"LC35\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L36\" class=\"blob-num js-line-number\" data-line-number=\"36\"><\/td>\n                <td id=\"LC36\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L37\" class=\"blob-num js-line-number\" data-line-number=\"37\"><\/td>\n                <td id=\"LC37\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/<span class=\"pl-pds\">&#39;<\/span><\/span>)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L38\" class=\"blob-num js-line-number\" data-line-number=\"38\"><\/td>\n                <td id=\"LC38\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">index<\/span>():<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L39\" class=\"blob-num js-line-number\" data-line-number=\"39\"><\/td>\n                <td id=\"LC39\" class=\"blob-code blob-code-inner js-file-line\">    fetch_posts ()<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L40\" class=\"blob-num js-line-number\" data-line-number=\"40\"><\/td>\n                <td id=\"LC40\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> render_template (<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>index.html<span class=\"pl-pds\">&#39;<\/span><\/span>,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L41\" class=\"blob-num js-line-number\" data-line-number=\"41\"><\/td>\n                <td id=\"LC41\" class=\"blob-code blob-code-inner js-file-line\">                           <span class=\"pl-v\">title<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>YourNet: Decentralized <span class=\"pl-pds\">&#39;<\/span><\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L42\" class=\"blob-num js-line-number\" data-line-number=\"42\"><\/td>\n                <td id=\"LC42\" class=\"blob-code blob-code-inner js-file-line\">                                 <span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>content sharing<span class=\"pl-pds\">&#39;<\/span><\/span>,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L43\" class=\"blob-num js-line-number\" data-line-number=\"43\"><\/td>\n                <td id=\"LC43\" class=\"blob-code blob-code-inner js-file-line\">                           <span class=\"pl-v\">posts<\/span><span class=\"pl-k\">=<\/span>posts,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L44\" class=\"blob-num js-line-number\" data-line-number=\"44\"><\/td>\n                <td id=\"LC44\" class=\"blob-code blob-code-inner js-file-line\">                           <span class=\"pl-v\">node_address<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-c1\">CONNECTED_NODE_ADDRESS<\/span>,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L45\" class=\"blob-num js-line-number\" data-line-number=\"45\"><\/td>\n                <td id=\"LC45\" class=\"blob-code blob-code-inner js-file-line\">                           <span class=\"pl-v\">readable_time<\/span><span class=\"pl-k\">=<\/span>timestamp_to_string)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L46\" class=\"blob-num js-line-number\" data-line-number=\"46\"><\/td>\n                <td id=\"LC46\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L47\" class=\"blob-num js-line-number\" data-line-number=\"47\"><\/td>\n                <td id=\"LC47\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L48\" class=\"blob-num js-line-number\" data-line-number=\"48\"><\/td>\n                <td id=\"LC48\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-en\">@ app.route<\/span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/ submit<span class=\"pl-pds\">&#39;<\/span><\/span>, <span class=\"pl-v\">methods<\/span><span class=\"pl-k\">=<\/span>[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>POST<span class=\"pl-pds\">&#39;<\/span><\/span>])<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L49\" class=\"blob-num js-line-number\" data-line-number=\"49\"><\/td>\n                <td id=\"LC49\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">submit_textarea<\/span>():<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L50\" class=\"blob-num js-line-number\" data-line-number=\"50\"><\/td>\n                <td id=\"LC50\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L51\" class=\"blob-num js-line-number\" data-line-number=\"51\"><\/td>\n                <td id=\"LC51\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    Endpoint to create a new transaction via our application.<\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L52\" class=\"blob-num js-line-number\" data-line-number=\"52\"><\/td>\n                <td id=\"LC52\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">    <span class=\"pl-pds\">&quot;&quot; &quot;<\/span><\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L53\" class=\"blob-num js-line-number\" data-line-number=\"53\"><\/td>\n                <td id=\"LC53\" class=\"blob-code blob-code-inner js-file-line\">    post_content <span class=\"pl-k\">=<\/span> request.form [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>content<span class=\"pl-pds\">&quot;<\/span><\/span>]<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L54\" class=\"blob-num js-line-number\" data-line-number=\"54\"><\/td>\n                <td id=\"LC54\" class=\"blob-code blob-code-inner js-file-line\">    author <span class=\"pl-k\">=<\/span> request.form [<span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span>author<span class=\"pl-pds\">&quot;<\/span><\/span>]<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L55\" class=\"blob-num js-line-number\" data-line-number=\"55\"><\/td>\n                <td id=\"LC55\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L56\" class=\"blob-num js-line-number\" data-line-number=\"56\"><\/td>\n                <td id=\"LC56\" class=\"blob-code blob-code-inner js-file-line\">    post_object <span class=\"pl-k\">=<\/span> {<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L57\" class=\"blob-num js-line-number\" data-line-number=\"57\"><\/td>\n                <td id=\"LC57\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>author<span class=\"pl-pds\">&#39;<\/span><\/span>Author<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L58\" class=\"blob-num js-line-number\" data-line-number=\"58\"><\/td>\n                <td id=\"LC58\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>content<span class=\"pl-pds\">&#39;<\/span><\/span>: post_content,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L59\" class=\"blob-num js-line-number\" data-line-number=\"59\"><\/td>\n                <td id=\"LC59\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L60\" class=\"blob-num js-line-number\" data-line-number=\"60\"><\/td>\n                <td id=\"LC60\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L61\" class=\"blob-num js-line-number\" data-line-number=\"61\"><\/td>\n                <td id=\"LC61\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#<\/span> Submit a transaction<\/span><\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L62\" class=\"blob-num js-line-number\" data-line-number=\"62\"><\/td>\n                <td id=\"LC62\" class=\"blob-code blob-code-inner js-file-line\">    new_tx_address <span class=\"pl-k\">=<\/span> <span class=\"pl-s\"><span class=\"pl-pds\">&quot;<\/span><span class=\"pl-c1\">{}<\/span>\/ new_transaction<span class=\"pl-pds\">&quot;<\/span><\/span>.format (<span class=\"pl-c1\">CONNECTED_NODE_ADDRESS<\/span>)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L63\" class=\"blob-num js-line-number\" data-line-number=\"63\"><\/td>\n                <td id=\"LC63\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L64\" class=\"blob-num js-line-number\" data-line-number=\"64\"><\/td>\n                <td id=\"LC64\" class=\"blob-code blob-code-inner js-file-line\">    requests.post (new_tx_address,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L65\" class=\"blob-num js-line-number\" data-line-number=\"65\"><\/td>\n                <td id=\"LC65\" class=\"blob-code blob-code-inner js-file-line\">                  <span class=\"pl-v\">json<\/span><span class=\"pl-k\">=<\/span>post_object,<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L66\" class=\"blob-num js-line-number\" data-line-number=\"66\"><\/td>\n                <td id=\"LC66\" class=\"blob-code blob-code-inner js-file-line\">                  <span class=\"pl-v\">headers<\/span><span class=\"pl-k\">=<\/span>{<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>Content-type<span class=\"pl-pds\">&#39;<\/span><\/span>: <span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>application \/ json<span class=\"pl-pds\">&#39;<\/span><\/span>})<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L67\" class=\"blob-num js-line-number\" data-line-number=\"67\"><\/td>\n                <td id=\"LC67\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L68\" class=\"blob-num js-line-number\" data-line-number=\"68\"><\/td>\n                <td id=\"LC68\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> redirect (<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>\/<span class=\"pl-pds\">&#39;<\/span><\/span>)<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L69\" class=\"blob-num js-line-number\" data-line-number=\"69\"><\/td>\n                <td id=\"LC69\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L70\" class=\"blob-num js-line-number\" data-line-number=\"70\"><\/td>\n                <td id=\"LC70\" class=\"blob-code blob-code-inner js-file-line\">\n                <\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L71\" class=\"blob-num js-line-number\" data-line-number=\"71\"><\/td>\n                <td id=\"LC71\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">timestamp_to_string<\/span>(<span class=\"pl-smi\">epoch_time<\/span>):<\/td>\n            <\/tr>\n            <tr>\n                <td id=\"L72\" class=\"blob-num js-line-number\" data-line-number=\"72\"><\/td>\n                <td id=\"LC72\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return<\/span> datetime.datetime.fromtimestamp (epoch_time) .strftime (<span class=\"pl-s\"><span class=\"pl-pds\">&#39;<\/span>% H:% M<span class=\"pl-pds\">&#39;<\/span><\/span>)<\/td>\n            <\/tr>\n        <\/table>\n\n\n    <\/div>\n\n\n\n<h3 class=\"wp-block-heading\">conclusion<\/h3>\n\n\n\n<p>This example covers the basics of a public blockchain. It implements a blockchain from scratch and creates a simple application allowing users to share information in it.<\/p>","protected":false},"excerpt":{"rendered":"<p>La Tecnolog\u00eda Blockchain Podemos decir que blockchain es la tecnolog\u00eda del bitcoin y otras criptomonedas, &hellip; <\/p>","protected":false},"author":2,"featured_media":641,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[25,95,46],"tags":[94,57,58,56,50,59],"class_list":["post-640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-blockchain","category-machine-learning","tag-blockchain","tag-ciencia-de-datos","tag-data-mining","tag-data-science","tag-machine-learning","tag-mineria-de-datos"],"aioseo_notices":[],"author_meta":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/en\/author\/jacob-avila\/"},"featured_img":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/blockchain_developer-300x250.png","featured_image_src":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/blockchain_developer.png","featured_image_src_square":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/blockchain_developer.png","author_info":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/en\/author\/jacob-avila\/"},"coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/algoritmos\/\" class=\"advgb-post-tax-term\">Algoritmos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/algoritmos\/blockchain\/\" class=\"advgb-post-tax-term\">Blockchain<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Machine Learning<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Algoritmos<\/span>","<span class=\"advgb-post-tax-term\">Blockchain<\/span>","<span class=\"advgb-post-tax-term\">Machine Learning<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">blockchain<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Ciencia de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Mining<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Science<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">machine learning<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/en\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">blockchain<\/span>","<span class=\"advgb-post-tax-term\">Ciencia de Datos<\/span>","<span class=\"advgb-post-tax-term\">Data Mining<\/span>","<span class=\"advgb-post-tax-term\">Data Science<\/span>","<span class=\"advgb-post-tax-term\">machine learning<\/span>","<span class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 8 years ago","modified":"Updated 1 year ago"},"absolute_dates":{"created":"Posted on October 31, 2018","modified":"Updated on February 20, 2025"},"absolute_dates_time":{"created":"Posted on October 31, 2018 5:35 pm","modified":"Updated on February 20, 2025 1:37 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/posts\/640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/comments?post=640"}],"version-history":[{"count":17,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/posts\/640\/revisions"}],"predecessor-version":[{"id":1773,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/posts\/640\/revisions\/1773"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/media\/641"}],"wp:attachment":[{"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/media?parent=640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/categories?post=640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/en\/wp-json\/wp\/v2\/tags?post=640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}