Widespread Augmented Reality

Widespread Augmented Reality
Click on the image to get the Android Augmented Reality Heads up Display

Monday, November 22, 2021

mya55 on Bitcoin

Saturday, November 20, 2021

Bitcoin Peer to Peer Network - The How

Bitcoin network map
Bitcoin live map

Apparently, bitcoin transactions are transmitted to all nodes on the Bitcoin peer to peer decentralized network, which means that my wallet is not sending a transaction to a server but rather out to all nodes on the network. How does the wallet know who those nodes are? Here's are some links to start learning how this works:

  • Peer to Peer file sharing
  • What are STUN, TURN and ICE?
  • Network Address Translation (NAT)
  • How does a node connect to the Bitcoin P2P network
  • This is the response from my linux laptop when I ran the 'dig' command.

    Thursday, November 18, 2021

    Bitcoin Parse out the Blockchain into JSON

    A bitcoin does not exist as a single persistent digital file that is passed around. Rather, bitcoins are referenced in transaction amounts between addresses a.k.a. accounts a.k.a. wallets a.k.a. nodes on an unstructured peer to peer network overlayed on top of TCP/IP a.k.a. the internet. At any rate, back to the bitcoin concept, if there are only two addresses in the system and address-1 has 50 bitcoins while address-2 has 0, then there are 50 bitcoins. One does not examine each bitcoin. If address-1 sends 25 bitcoins to address-2 then you have a transaction that tracks the movements of bitcoins. Now both address-1 and address-2 have 25 bitcoins each with a total of 50 bitcoins in existence. The 50 bitcoins have not left the Bitcoin system and are password locked into the two addresses. You know there are 50 bitcoins because the transactions state that. Again, you will not be able to examine each bitcoin individually because they don't exist except as an amount in a transaction between or among addresses.

    Now let's say that another party wants to join the Bitcoin system and connects as address-3. Naturally address-3 has no bitcoins because all 50 bitcoins reside at addresses-1 and address-2. Feeling generous, address-2 sends 10 bitcoins to address-3. This transaction results in [address-1 = 25 bitcoins], [address-2 = 15 bitcoins] and [address-3 = 10 bitcoins] with the total bitcoins in existence still being 50. Finally, these addresses or accounts are secured with passwords and the transactions are cryptographically linked together so that any effort to change a transaction will have to include undoing all the preceding transactions and hiding this from all the connected addresses that are participating in this Bitcoin system. A further deterent to hacking bitcoin transactions is that an address will be rewarded with new bitcoins if that address runs the program that links these transactions into a cryptographically locked block of data. An address that joins the system and performs the computationally intensive locking task is called a miner. If an address-4 comes along with the techincal expertise to mine a new block, they will be rewarded with some agreed upon amount of bitcoin. For this example, let's say the reward is 50 bitcoins. So now the Bitcoin system has a total of 100 bitcoins, with address-4 being the wealthiest of its members unless addresses 1 through 3 come up with some bitcoin priced product to sell to address-4. Either that or addresses 1 through 3 learn to become miners and keep growing the bitcoin supply up towards its maximum of 21MM bitcoins. Anyhow, I just want to see what bitcoin block looks like.

    Ran Bitcoin core on Linux laptop to get a few files like blk00828.dat
    Got a Python bitcoin block parser from https://github.com/pldespaigne/blk_parser/
    From the blk_parser-master\script directory I ran this:
    python3 blk_parser.py -i /home/pentoo/Desktop/MyBitCoin/MyBitCoinData/blocks/ -o /home/pentoo/Desktop/MyBitCoin/MyBitCoinData/json/ -n *
    This started putting out json files, which then could be viewed with this from inside the JSON folder:
    jq '.' tx00828.json | more
    Output:

    Now I can go to an on-line blockchain explorer with transaction IDs and addresses to further explore the structure of the Bitcoin blockchain.

    Fascinating stuff! Elegant solution to digital currency, but perhaps not the most optimal implementation as the peer to peer network grows. We will likely see this naturally move towards centralization and/or splinter off into digital nation states, the two things that bitcoin was seeking to overcome. But time will tell once the supply starts to cap, mining rewards cease and some folks start burning wallets because they can.

    Saturday, October 23, 2021

    Time for the Communist Party Virus "Vaccine" Booster

    "It is likely that vaccinated individuals are less likely to transmit the virus but further research is needed..."

    "Those vaccinated should take the same precautions, which include social distancing, wearing a mask, and washing hands frequently. The vaccine provides only 50% protection after 14 days and 95% protection after the second dose. Therefore, an individual is never 100% protected. Additionally, it is unknown how long the protection from the vaccine lasts. Finally, some individuals may be unable to receive the vaccine for various health reasons and will remain at risk until herd immunity is achieved"

    Source: https://patientsafetymovement.org/covid-19-vaccine-information/?gclid=EAIaIQobChMI1PiLh-Pg8wIVgD6tBh120ASLEAAYASAAEgKNa_D_BwE
    Questions:

    1. Does the "vaccine" promote herd immunity?

    2. Is the "vaccine" preventing infection or only relieving symptoms?

    3. Do masks and distance in open air prevent the virus from entering the body?

    4. Why are there vaccine and mask mandates if answers to 1, 2 and 3 are unclear?

    5. Who is paying for and profiting from the vaccine?

    6. Who is paying for the loss of livelihood and productivity

    7. Where are the causation vs correlation studies?

    8. Is the reaction to the pandemic worse than the pandemic itself?

    9. Since when is the risk of death not part of life?

    10. Do we really believe that this "vaccine" regiment is the ONLY way?

    May I just note that everyone is an expert until they are wrong.

    Disregard this if you are content with living "better safe than sorry".

    Thursday, October 21, 2021

    Chinese Communist Party Virus aka Covid-19

    Source: https://www.theepochtimes.com/ccp-virus?utm_source=CCPVirusNewsletter&utm_medium=email&utm_campaign=2021-10-21

    Sunday, October 17, 2021

    Mining Bitcoin

    Links for reference:
    https://www.luno.com/blog/en/post/bitcoins-hash-rate-is-hitting-record-highs-but-does-it-even-matter
    https://www.baeldung.com/java-blockchain
    https://medium.com/programmers-blockchain/create-simple-blockchain-java-tutorial-from-scratch-6eeed3cb03fa

    My Simple Pseudo BLock Chain in JavaScript

    class Block {
    constructor(index, timestamp, data, prevHash = '') {
    this.index = index;
    this.timestamp = timestamp;
    this.data = data;
    this.prevHash = prevHash;
    this.hash = this.calculateHash();
    }
    calculateHash(){
    return 'need to calc the hash';
    }
    }
    class Blockchain{
    constructor(){
    this.chain = [this.createGenesisBlock()];
    }
    createGenesisBlock(){
    return new Block(0, "09/01/2021", "Genesis block", "0");
    }
    getLatestBlock(){
    return this.chain[this.chain.length - 1];
    }
    addBlock(newBlock){
    newBlock.prevHash = this.getLatestBlock().hash;
    newBlock.hash = newBlock.calculateHash();
    this.chain.push(newBlock);
    }
    }
    let myCoin = new Blockchain();
    myCoin.addBlock(new Block(1, "09/20/2021", {amount: 4}));
    myCoin.addBlock(new Block(2, "09/27/2021", {amount: 5}));
    console.log(JSON.stringify(myCoin, null, 4));

    Console output:
    {
    "chain": [
    {
    "index": 0,
    "timestamp": "09/01/2021",
    "data": "Genesis block",
    "prevHash": "0",
    "hash": "need to calc the hash"
    },
    {
    "index": 1,
    "timestamp": "09/20/2021",
    "data": {
    "amount": 4
    },
    "prevHash": "need to calc the hash",
    "hash": "need to calc the hash"
    },
    {
    "index": 2,
    "timestamp": "09/27/2021",
    "data": {
    "amount": 5
    },
    "prevHash": "need to calc the hash",
    "hash": "need to calc the hash"
    }
    ]
    }
    }

    This pseudo block chain is missing the nonce, which is what gets the block's hash to start with appropriate number of leading zeros.