Blockchain CBSA – Blockchain 101 Part 3
- Objective – History of Blockchain
This objective. Let’s talk about the history of blockchain. Now, there’s going to be a couple of dates that you’re going to want to remember. Not so much dates as in days and months, but more or less years. So let’s go and talk about the first one. We want to understand the Buys and T general problem. 1982, this is when that issue came up around how do we get the nodes to basically agree on specific consensus related concerns. Right now, when it comes to blockchain, though, 2008 is when Satoshi came out with the white paper.
2009 is when Bitcoin actually went to market, and that was in January. In 2015, ethereum goes live. And also in 2015, hyperledger goes live as well. And of course, in 2018, 1920, whatever, there will be more blockchain related technologies. I’m sure that will change the world down the road. But the main thing on the exam is to know the dates. Know when Satoshi released the White paper, know when Bitcoin was released? No. When Ethereum and Hyperledger went live as well. Let’s go ahead and move on to the next module.
- Objective – The programming languages of the most common blockchains
This objective. Let’s talk about programming languages and what we want to know for the exam. Now, the main thing to know for the exam is I’ve broken it down to the simplest level I could. There’s really two things you want to know for the exam. The first thing is that Ethereum uses solidity. The second thing is hyperledger uses go. Now, when we get to theorem and hyperledger modules, towards the end of the course I’m going to talk more about this, but basically this objective just really is focused on do you know that a theorem uses solidity and a hyperledger uses go? Nothing more, nothing less. And here’s an example of other blockchains and the languages that they may be using.
There’s a good link on free code camp here I’d recommend you take a look at. If you’re not familiar with some of the other blockchains or are just curious. For example, Python is used where Ruby is used where JavaScript, et cetera, go. It sort of sums up everything really nice. But on the CVSA exam it’s really simple. No Ethereum is solidity. Know that go is used in what? Hyper ledger. That’s really what you really need to know for this objective. That’s really the extent, nothing more. Don’t make it difficult. Let’s go ahead and move on.
- Deploy and Test Apps
In this objective. Let’s talk about testing and deployment practices for Blockchains and Blockchain apps. Let’s go ahead and talk about some of the typical development best practices as well. Things that we’re going to want to do to test, et cetera. So let’s go ahead and talk about some of the areas we may not want to run into. The first is going to be around SDLC. This is a software for development lifecycle. This is again a way to ensure quality. And if you’ve been using SDLC and your common applications, you can certainly use this again in Blockchain. Now, when it comes to SDLC models, we have Agile Waterfall Spiral for example. You can certainly build a D app and the affiliated smart contracts with SDLC. When it comes to design, one of the things you want to just pay attention to is realize that this is not a client server application, this is a Blockchain app. And these are going to be really focused on a peer to peer protocol in most cases. In the world of hyperledger, it’s gossip related, it’s a little different, but just be aware that this is not client server in most cases and therefore you need to plan accordingly. Also to security is going to be handled really different.
Everything uses security around basically encryption certificates like X 509 and just realize that things are different when it comes to building. Again, a lot of this is very similar. There isn’t really anything from my perspective, from a development perspective that’s going to be really challenging if you’re a developer. Now, for architects out there, I think the main thing we want to get out of this module is to know what SDLC is, but also know why you want to use a Lifecycle. Understand that Blockchain is not client server, it’s going to use a peer to peer protocol. Now some of the frameworks that are out there, for example, if we’re going to design on PHP, you might want to use Symphony, Fuel, PHP, Ethereum, Solidity has some really solid frameworks like Embark and also Open Zeppelin that can be used test networks. Now in Ethereum there’s test networks. It’s really important to realize that when you develop your blockchain services, you want to test them out either locally or on a test network. And there’s different frameworks out there as well.
Like MetaMask is one that could be used and actually very commonly used because you have the ability to test your smart contract without having to have that full node downloaded. Truffle framework is widely used in Ethereum as well. Again, these are just some examples. When it comes to deploying, you’re going to deploy your application essentially the same way in a lot of cases through probably like a CI pipeline or a CD pipeline. And you may want to think about how you deploy these applications, monitoring your resources. Now when you deploy your smart application, your smart app, your smart contract, I should say your D app. You want to think about it from this perspective. What do you want to do from your typical application perspective? Let’s say to monitor what that application is doing. And the reality is that a lot of this is going to be the same.
You’re already doing it. You can monitor your apps the same way because your application is going to be running on typically a container, and because it’s on a container, you could use the services that you’re already using, from Nagios to Azure Monitor. For example, if you’re using a Cloud Stackdriver with GCP or AWS, if you use an Amazon, you have Cloud Watch also too, you have Ether Scan with therium Ether stats. Some good examples. There hyperledger as well. You could use the Explorer to a degree to help monitor as well. But the reality is you probably want to monitor containers and then monitor the app on top of that. With that said, let’s go ahead and move on and continue to the next module.
- Demo Metamask
Okay. Let’s talk about MetaMask. One of the great possibilities with developing on Ethereum is the ability to use MetaMask. Now MetaMask is a bridge. And basically what’s also nice about MetaMask is you don’t have to download the whole blockchain basically locally. And so if you go down here, it explains you can go ahead and use this as basically a Web 30 web browser and it allows you to run the Ethereum D apps right in your browser without that Ethereum node. And it has a lot of good services in there. There’s a demo to walk you through it, but there’s a Chrome extension. Now in my case, I already have MetaMask installed, but what I have to do is I’m going to have to re enable it. So I go over to extensions and then I want to go ahead and just turn it on.
And if I go back to where I was, you could see that I have MetaMask there already. Go, what I want to do now is I want to go and enter my password. And you can see that I have a few transactions that have been confirmed and I have whopping $7 left in Ether that I could use to go ahead and test out my D app. For example, if I go over here, you can see that May 15, April 7 I did some small transactions as well. If I go over here, what’s really cool is I could go view the transactions on the Ethereum blockchain.
Now Ether scan, when I click that, that is going to bring me over to the Ethereum block Explorer. And you can see that this is looking at my wallet address here and you can see that I sent two transactions in and one out. And again, that was a little while ago. I haven’t used it lately. But just to give you an idea of how you could view your own activity on, for example, the Ethereum blockchain and then with Bitcoin, they’ve got the same pretty much approach. They have a bitcoin explorer as well. We could do the same.
Now, when we talk about blockchain Explorers for the permission, that’s a little different. Again, there’s options with hyperledger quarter, but of course it’s a permission blockchain. So not anyone can just go and scan the blockchain, right? So it makes sense because it’s permission. Now if I go back to MetaMask over here, actually what I need to do is go back here and you can see that. Now one of the things that says that there’s not enough balance for the transaction and that makes sense because the minimum you need generally by default is 2100 units of gas to be able to process another transaction. Now that’s just by default. Anyways, that’s just one of the things that confuses people.
So I like to point it out. Now over here, this is the kicker. You have the ability to not only run on the main Ethereum network, but you could also use this on other test networks. Now there is COVID, Rinkerby and Robson. Each of these test networks have different capacities, capabilities. You’d also run it as a local host and then you can also set up your own custom remote procedure call as well. So this is MetaMask, just a short demo to give you some ideas of the features that are available. Generally, your customer base is going to want to know what’s available for development, what’s available for D apps or distributed apps, and Aetherium.
MetaMask is just one of the options that’s out there. What languages are you going to develop in? So it’s still important, even though you’re more on the sales or the presale side. Let’s say you’re designing, you’re not a developer, you still need to know a lot of the basics because unfortunately, in some respects, it’s hard to do just one one thing nowadays. So you have to do 100 different things and be good at it. With that said, let’s proceed on to the next demo.