Hash and Ledger

After reading the Age of Cryptocurrency, I had one new take away about blockchain technology. This epiphany moment was my understanding of the SHA256 hash. The description of how a hash worked put my understanding of the protocol on an even lower level. This hash function can take any input and will output a hexadecimal number output of 64 digits (0-1) , (a-z). The data used by hash functions is referred to as a “message”, while the computed hash value is referred to as the “message digest”. If you compute a hash for a “,“ you will get a 64 character hash. If you compute a hash for “This is a hash”, you will get a 64 character hash. If you compute a hash for the entire text of a book, you will get a 64 character hash.

2000px-Cryptographic_Hash_Function.svg

The computed hashes in Bitcoin contain all of the transaction outputs that happened within that block of time. The newly computed hash (or block header) attaches the hash output of the previous block creating a chronological chain of spent transaction outputs.

hash image

I always understood that the blockchain was an unchangeable ledger, but the way that the data was actually computed with hashes was a new discovery. Embedding data into a hash on an unchangeable decentralized ledger is powerful technology.

The ledger comprised of these hashes, the blockchain, is a logically centralized, organizationally decentralized callable cryptographic record database. The combination of the SHA 256 hash, cryptographic private and public keys, and the timestamped ledger prevents the double spending of a bitcoin. This fundamental innovation is where the unimaginable blockchain 2.0 applications are born. The notion is that if you can decentralize money using hash functions, cryptographic keys, and distributed ledgers; you can compute any data into a hash that you want to be embedded into an irrefutable, global ledger. We combine this technology with a coded smart contract, combine this smart contract into a distributed ledger comprised of other smart contracts, and you have a whole new realm of decentralized applications and organizations.

Every copy of the bitcoin blockchain is identical, every node is another reference of proof, another voice of the consensus, another verifier of the ledger.  Miners, who essentially are the bookkeepers of the protocols, are rewarded with a write to the ledger in the form of an unspent transaction output. Satoshi has said “Bitcoin Mining is like flipping 37 coins all at once and trying to have them all come up heads”. If you accomplish this, you are rewarded with a number of writes to the ledger. The right to ownership is protected through the use of private cryptographic keys. That is why it really does not make so much sense to keep your coins in a “wallet”. You want to keep track of your keys so you should keep them on a keychain. If you can keep track of your keys and keep them secure, you will keep your coins. If you entrust your bitcoins to a company, you really don’t have control of your key, and consequently your proof of ownership of the coins associated with that key. Multisignature wallets between companies and customers are a step in the right direction but it makes more sense on an organizational level that with regards to bitcoin you should not be trying to manage a wallet with money in it, you should be managing your keys, regardless of what wallet, company, exchange, app  your coins reside in. Often I will forget which exchange or app I have coins in, let alone trying to remember the email and password I have associated with it. Some sort of decentralized keychain is needed combined with biometrics, and an API that ports any newly created key to your keychain. For more on ECDSA keys read The Math Behind Bitcoin.

Another hypothesis of mine that I confirmed was that ASIC miners would not just be used to mine bitcoins but would be essential to the perpetuation of blockchains based on the SHA 256 hash. No matter what version of future blockchain technology works whether it be sidechains, ethereum, or some unimaginable decentralized crypto platform; there will need to be miners processing the transactions. An ASIC Miner is essentially a mint a first because of the context of a coin, but the incentive to confirm the state of ownership could always evolve. The reward for running a machine that creates trillions of hashes a second could be extremely valuable as the ecosystem continues to grow and new blockchain uses emerge. I could allocate a couple hundred gigahashes at a sidechain, but for now bitcoin mining is the most profitable. The secure token of a bitcoin is essential to blockchain but some new incentive for a SHA 256 blockchain based ledger could be produced regardless if its value is derived from the original bitcoin blockchain. The big question is, “Is bitcoin the first cryptocurrency or the last one?”. I have heard this question a lot recently and the question is one that gives a very telling perspective as to the future of this technology phenomenon. The answer is arbitrary, but either way, the implications are profound.


The entire business-to-business sales process can be integrated with blockchain technology. This is the first thing I thought of when I saw the relationship between CRM, QTC, and ERP systems. Decentralized ledgers of unspent transaction outputs for international finance, real-time triple entry accounting, human resource management, supply chain logistics, accounts, opportunities, quoting data, contract data, billing and revenue data; all of it computed into the global ledger through the SHA-256 hash function and called on to by people and machines to gain control and visibility into an unlimited range of applications in the b2b, p2p and m2m space. Business and enterprise software suites are distributed in scalable multi-tenant infrastructure relying on integrators, connectors, and APIs to link the systems together. The fundamental innovation is that blockchain technology is organizationally decentralized, logically centralized, cryptographically secure, and infinitely scalable. The next big business platform will be built using this 10x technology. It is all about solving enterprise problems with software to increase sales efficiency and ultimately increase revenue. The opensource development of blockchain based protocols will undoubtedly increase over time creating actual commercial applications that offer new found efficiency. Reusable components and contracts that can used by businesses by the sending of a micropayment to an address. Designers of these contracts can be paid by people and machines, a royalty for enabling a process. The better the application, the more expensive the micropayment per transaction. You could effectively create a platform where industry agnostic components are constantly fighting to be the the best at their given use case. Enterprise software platforms could use a a real-time streaming API to access the blockchain. The first platform to link blockchain technology will completely flip the table on the way that enterprise software can scale and be developed with an opensource protocol. This is way beyond any sort of decentralized currency and financial transaction protocol. This would effectively create a decentralized global business network that handles the storage, transfer, proof of ownership, and valuation of many digital assets, identities, and business productivity applications, all within one cryptographic, distributed, decentralized database. It completely automates trust. Any sort of intermediary previously needed to accomplish something in a sales process can now be automated and distributed with computer code based on met or unmet inputs. The first enterprise software platform that harnesses it will completely dominate the market.

How to Setup an Antminer S5

This article will explain exactly how to setup your Antminer S5, configure it to your pool, and get it running on your network.

Hardware

  • “>Antminer S5 1155 GH/s
  • Corsair CX750M and a paperclip
  • A router and ethernet cord

The most important thing to know when setting up an ASIC miner is that you have the right hardware and capacity. The Antminer S5 runs at 590 W so you are going to need a PSU at least 600+. I choose the Corsair CX750M so if I want to overclock it, there should be no problem.

Setup

1) Unbox the Antminer S5 and your PSU

2) Do your paperclip trick and connect the four 6 PSI-e power cords from the PSU to the Antminer S5 power inputs.

3) Connect an ethernet cord from your router to the Antminer S5. Make sure the router’s range is between 192.168.1.1 – 192.168.1.254

4) Connect the power cord and turn on the power switch.

Configuration

1) Once your PSU and miner are on you are going to need find the IP address it has associated with your miner. This can be done through your router, minerlink.com or using nmap. Once you find this IP address type it in your browser and you will be directed to the Antminer S5’s configuration page.

2) Log in using username: root and password: root

3) Go to the miner configuration page and type in your pools URL, your worker name, and your password.

4) Hit Save & Apply

Your miner should restart and then you should start to see it hashing!

For any further information please see the BitMain Antminer S5 manual

 

https://gateway.ipfs.io/ipfs/QmTaRTR5YMNzZwAXbDJfZMuMfpw8s1iFbK935NuwjvZ9jB

Salesforce Lightning – Updated

Updated version – post Dreamforce 15.

For the past month or two I really started to understand what Lightning actually is. Lightning is the new UI layer of the Salesforce platform. It is comprised of:

  • Lightning Experience 
  • Lightning App Builder
  • Lightning Components
  • Lightning App Exchange
  • Lightning Design Systems

Introduction

The framework uses JavaScript on the client side, Apex on the server side and it uses JSON to exchange data between the two. Essentially you are writing handlers that respond to interface events as they occur. These can be component events and application events. You write the handlers in JavaScript controller actions.
The first thing I discovered was that the Lightning Desktop and SF on mobile are essentially going to become a unified UX.

Lightning Components

Lightning components give you a client-server framework that accelerates development, as well as app performance. Components are the self-contained and reusable units of an app rendered to produce HTML DOM elements within the browser. These components facilitate parallel design, improving overall development efficiency. They can contain other components, HTML, CSS, JavaScript, or any other Web-enabled code.

Components – Admins:

You now have drag-and-drop control to build out interfaces for your users. It’s as easy as going to the appexchange, looking for what type of component you need and installing it into your Salesforce instance. When you go to edit the page the component will be there along with the standard Salesforce components and and other components you have created or downloaded. If created with the Lightning Design System, the component will be responsive in that it will adjust its spacing/what data to be shown dependent on screen size or what device it is on.

Components – developers:

You are now have the choice to build page-centric apps with VF or app-centric event drive n apps with Lightning Components. When building components use the new Lightning Design System classes within the component to keep the UI consistent with the rest of the page. You can also choose to embedd Lightning Components within other component so that they only show when a condition is met. Lastly, you can build entire Lightning applications using multiple lightning components and lightning events. Each component has a handler which essentially is listening for events. These events can be application wide or at the component level. Essentially you are wiring a JS front end to an existing APEX controller. You have the public class and can then build a Lightning component that is built on top of the server-side logic. You embed multiple of these components into the same application.

App Builder- Admins:

Salesforce Lightning App Builder has been released on the force.com platform, I am going to start building with these components in the developer console. Yesterday I started building the responsive UIs for Force.com apps.

This new component driven framework is analogous to different components to a car. There are only around 50 components on the app exchange right now but I can see it developing into an even larger market then the existing app exchange.

MicroSaas

One of this could happen would be through a new montezation model built on micropayments. The components in the exchange could charge on a per use basis and charge a digital micropayment instead of a monthly subscription. Components could compete and charge different amounts in order to be added and used within a users Lightninng application. Ultimately the user could have multiple Lightning Apps doing the same process but based upon the use case, the user could choose which component to use. This type of micropayment model would drive innovation and create an ecosystem where developers can serve different customers based upon the effectiveness of the component. Maybe someone just needs to get A–>B for a quote in the morning but later on in the afternoon has a complex use case with some integrated approvals and needs to use the XComponent.

lightning

 Creating Components

A components encapsulates a modular and potentially reusable section of UI, and can range in granularity from a single line of text to an entire application.

To create a component, go to the Developer Console within force.com. Click create now Lightning Component.

There are a number of resources that come in a component bundle. These are:

  • The Component itself
  • CSS Styles – Styles for the component.
  • Controllers – The Client-side controller methods to handle events in the component.
  • Documentation – Description and sample code to example the component.
  • Renderer – Client-side renderer to override default rendering for a component.
  • Helper – JavaScript functions that can be called from any JavaScript code in a component’s bundle.


I had two sessions at Dreamforce describing how to build these components but the highlight of it all was to see our Apttus Lightning components featured in Marc and Parkers keynote. I really look forward to building out more of these components across the entire footprint. 

For more informations go to lightningdesignsystem.com, go to trailhead and complete the modules or just run it locally using node.js / Heroku and start developing the future of the platform!