Build a Blockchain & Cryptocurrency | Full-Stack Edition
- Descrição
- Currículo
- FAQ
- Revisões
This course has been updated! Since this course’s launch, students and even fellow udemy instructors have highlighted many of this course’s strong aspects in various reviews:
-
“highly recommendable course for blockchain beginners. you can experience every aspect of blockchain mechanism with hands-on coding projects.”
-
“As a fellow instructor at Udemy, this course has given me something to live up to. Just incredible. HIGHLY HIGHLY RECOMMEND.”
-
“I am a beginner in programming. But I found David to be a prolific teacher. I cannot believe he is releasing this quality material for such an affordable price. Dude thank you so much! You are the best teacher I’ve ever had! Although JavaScript isn’t easy you are helping give us solid material quickly. I hate waiting ten years to hear something spicy & interesting when wanting to tackle a huge concept!”
-
“The instructor has put a lot of effort to explain every operation in very detail. This course is very helpful for me to understand how react works in web browser. Thank you.”
-
“Perfect! This course is a must-have for a junior developer.”
-
And more…
In the updated course, you’ll find:
* A new commit-by-lecture repository to help you troubleshoot/debug every step of the way.
* Updates to fix common bugs that have been pointed out by students throughout this course’s lifetime, particularly in the frontend and deployment sections.
***
Original description:
White walkers stalking you in the night? Death eaters knocking down your door?
Well, sounds like you’re looking to build a blockchain and cryptocurrency! Having your own blockchain and cryptocurrency is the number one way to get rid of threats both magical and technical!
Ok, maybe the magic part was a tiny bit exaggerated. But the technical part, not so much! The blockchain has become a magic bullet in the software world throughout the past few years. It’s proven that it has the power to revolutionize economic systems and so much more. It seems to have the power to save us all.
But the blockchain wave has only begun! There is so much untapped potential in the field for high-paying employment, and new exciting companies.
But it all starts with building a blockchain and cryptocurrency? How are you going to do that? Take this course!
Why this course specifically?
This course will teach you how to build your own blockchain and cryptocurrency from scratch. You’ll have your own full-on backend, test suite, frontend and deployment process.
It’s no denying that blockchain based systems have taken the tech and financial worlds by storm. A single bitcoin was worth $20,000 at one point in one 2017. And beyond cryptocurrencies, the potential use cases for the blockchain are truly endless. And yet the blockchain industry is still so young. So many startups waiting to, well, start up!
So it’s time to create your own unique blockchain project. Take this course to gain the foundation to do so. Other courses may teach how the blockchain works, its main concepts, or how to invest in a cryptocurrency. But this is the best resource for you to learn how to make a blockchain from scratch, and apply your own unique ideas on top of that.
In this course, you will:
Build a full on blockchain and cryptocurrency backend. Create and code blockchain objects. Implement the core logic to power the blockchain. Learn the essential concepts behind the powerful ideas of blockchain technology.
Write a full test suite and code in a test-driven manner. You will also have the chance to make your implementation truly unique. If your own code covers the test cases, your blockchain will be both unique and functional.
Create a frontend application. Your project will have a web app that will allow people from all over the world to use your blockchain and cryptocurrency. If you’re a fan of React, you’ll love the frontend part of this course.
Finally, you will deploy the project in a public environment. A lot of coding courses will take you as far as the local application. But only a select few take you to the next level. This is one of those courses. You will take publish your project. And anyone in the world will be able to use it, as long as they know your project’s url.
On top of building a full backend, testing suite, a frontend web app, and deploying the project, there are many other aspects of the course to look forward to:
A deep conceptual understanding backed by practical experience. You will see the big picture of core blockchain and cryptocurrency concepts. And those big picture concepts will be reinforced directly by building related features in code. You will find a balance of theory and practical experience in the course.
You will learn work with many technologies. Node.js, JavaScript, Express, APIs, Publish/Subscribe, React.js – all these technologies will be incorporated in the full-stack project. Don’t worry if you’re a beginner to any. Each keyword/concept will be explained – even the fundamental JavaScript. That being said, this course is best for intermediate students – anyone who knows at least one programming language already!
Software Best Practices. You will follow all the modern best practices of full-stack development. Learn the conventions of Node.js and React, and how to properly structure code and projects. As a practicing software engineer, I’ve applied the same level of care to the project course code as I would to code that I ship every day in my full-time job.
***
Question(s) you may have:
What is the difference between this course and your original course on building a blockchain and cryptocurrency?
This is a remastered version of that original course. The original course does not have a frontend nor a deployment process. So many students were looking for these aspects from that first course. Well, you’ll find that here!
Plus, the refactored test-driven backend will give you the opportunity to truly create your own version of the project. The first course went with the code and core logic first. Then the tests came after. This approach does not give as much immediate freedom to implement the functions and logic in your own unique way.
Also, a lot of the blockchain logic has been improved, with additional methods and concepts! This version of the project is definitely more secure, more thorough, and more complete.
Can this course help me find employment?
Taking this course will turn you into both a software engineer, and a specialized blockchain engineer. This position is a new one in the software industry. And the demand is high. But the supply is low. So open a ton of doors by becoming an in-demand engineer with a fully deployed blockchain and cryptocurrency on your resume!
***
Ultimately, this course is a learning experience like no other. It’s an opportunity to become a pioneer in such a young and promising field!
So, are you going to let this golden chance pass you by? Heck no! Join the course, and let’s get starting coding a full-on blockchain and cryptocurrency!
-
1Why this course? (Course Promo)Vídeo Aula
-
2The Blockchain and Cryptocurrencies - What, Why, and HowVídeo Aula
Learn the fundamentals of blockchain and cryptocurrency software.
What is the blockchain?
What is a cryptocurrency?
Why should you care about these technologies?
How do they work?
These questions addressed, and more!
-
3Code the Blockchain in 10 minutes | Lightning VersionVídeo Aula
Code the blockchain in 10 minutes!
Get hands-on experience building a blockchain right away. This will give you skills immediately. And you'll gain an overarching perspective of what features you'll work toward building throughout the course.
-
4[Required] Course Repository, Software Installation, Tips and TricksTexto
Required reading for the software installations portion of the course! Make sure to read this thoroughly so you're prepared to be successful throughout the course.
-
5[Optional] Mega JavaScript and Node.js OverviewTexto
Read this article to learn about the optional JavaScript within this course's reference section.
-
6Commits for this SectionTexto
Use the following reference in case you get stuck on a lecture. This is a commit-by-lecture breakdown of the section:
* https://github.com/15Dkatz/cryptochain_commits#section-2-blocks--the-blockchain-backend
Enjoy coding!
-
7Set Up the Blockchain ApplicationVídeo Aula
Set up the starter code for the overall blockchain application that you'll create in the course!
-
8Create the Block ClassVídeo Aula
The first step to building a blockchain is the most basic building block of the technology - the block itself! Create the block class in this video.
-
9Create the Block Class | TDD StyleVídeo Aula
Recreate the block class through test-driven development!
-
10The Genesis Block | TestsVídeo Aula
Learn how to start off the blockchain application through the genesis block. Create the genesis block through test-driven development.
-
11The Genesis Block | CodeVídeo Aula
Implement the code to get the genesis block tests to pass. Remember, you can go with your own solution - as long as the test suite turns green!
-
12Mine BlocksVídeo Aula
Add a generic way to create blocks through a mine block function in the block class.
-
13Crypto Hash and SHA-256Vídeo Aula
Create the all-important cryptographic sha-256 hash function. This will set the hash values in the blocks.
-
14Hash in MineBlockVídeo Aula
Add the hash functionality to the creation of a new block.
-
15Recap: Blocks | The Blockchain BackendTexto
Review this section!
-
16Commits for this SectionTexto
-
17The Blockchain ClassVídeo Aula
An overview of the core blockchain class. Now that the block class is present, the blockchain class can be created!
-
18Chain Validation and Replacement Overview | Free PreviewVídeo Aula
Understand the crucial concepts of chain validation and replacement - necessary aspects in a blockchain application with multiple contributors.
-
19Chain Validation | TestsVídeo Aula
Develop chain validation by writing the tests first.
-
20Chain Validation | CodeVídeo Aula
Write the code to get the chain validation tests to pass. Again, you can implement your own solution as long as the test suite goes green!
-
21Chain ReplacementVídeo Aula
Develop the chain replacement functionality. This will support the replacement of the blockchain data when chains are submitted by multiple contributors to the application.
-
22Stub Console Output in TestsVídeo Aula
Remove the extra console output in the test suite!
-
23Recap: The Chain and Proof of Work | the Blockchain BackendTexto
Review this section!
-
24Commits for this SectionTexto
-
25Proof of Work and the 51% AttackVídeo Aula
Learn about the proof of work system, and the 51% attack scenario.
Proof of work ensures that blocks get added at a manageable pace. It also ensures that miners must be invested in adding blocks to the chain. This makes it expensive to hoist the 51% attack on the blockchain. More details in the video!
-
26Difficulty and the Nonce Value | TestsVídeo Aula
Add the first bits to proof of work - the difficulty and nonce value - through tests!
-
27Difficulty and the Nonce Value | CodeVídeo Aula
Get the difficulty and nonce value tests to pass. It's a great opportunity to try and get the test suite to green yourself!
-
28Dynamic Difficulty and the Mine RateVídeo Aula
Set an overall mine rate that miners should average around. The growth of the blockchain should be controlled. The mine rate facilitates this!
-
29Adjust the Difficulty in MineBlockVídeo Aula
Execute the difficulty adjustment and get blocks to converge around a mine rate for the system.
-
30Improve the Proof of Work System | Average Work ScriptVídeo Aula
Investigate the proof of work system by writing a script that measures mining times.
-
31Improve the Proof of Work System | Binary hashesVídeo Aula
Follow up on the average work script and explore the advantages/disadvantages to using hexadecimal vs. binary hashes for the difficulty checks.
-
32Prevent Difficulty JumpsVídeo Aula
Guard against an attack scenario where someone could arbitrarily change the difficulty value beyond a regular difference of one.
-
33Recap: Proof of Work | the Blockchain BackendTexto
Review this section!
-
34Commits for this SectionTexto
-
35Blockchain API and Network OverviewVídeo Aula
Gain a picture of how this blockchain application will extend to multiple contributors through an API and network.
-
36Setup Express APIVídeo Aula
Create the express application that will power the blockchain API.
-
37Post Request to Mine a BlockVídeo Aula
Develop a request in the api to mine a block to the main blockchain instance for the application.
-
38Real-Time Messaging Network through Pub/Sub | OverviewVídeo Aula
Learn how real-time messaging across nodes will occur through a Publish/Subscribe implementation. This has advantages over a socket-tracking system found in many other peer-to-peer networking implementations!
-
39Pub/Sub Options: Redis or PubNubVídeo Aula
Choose your pub/sub weapon: redis or pubnub.
Redis: more control.
Pubnub: easier configuration.
-
40Install RedisTexto
Directions to install redis.
-
41Redis Publisher/Subscriber ClassVídeo Aula
Implement the Pub/Sub pattern with a redis backend.
-
42Install PubNubTexto
-
43PubNub: a Non-Redis Pub/Sub AlternativeVídeo Aula
Implement the pub/sub pattern using PubNub.
-
44Broadcast ChainVídeo Aula
Broadcast blockchain data to all interested parties in the blockchain pub/sub network!
-
45Start Peers and Broadcast Chain on API MineVídeo Aula
Configure the code to start local peers in the blockchain application. Also consume the broadcastChain() functionality previously developed, so that the blockchain is broadcasted when a block is mined in the API.
-
46Sync Chain on ConnectVídeo Aula
Ensure that new nodes in the network get the current relevant blockchain data when they connect to the network.
-
47Avoid Redundant InteractionsVídeo Aula
Eliminate the redundant interactions found in the current pub/sub implementation.
-
48Recap: API and Network | the Blockchain BackendTexto
Recap this section!
-
49Commits for this SectionTexto
-
50Wallets, Keys, and Transactions OverviewVídeo Aula
Start the cryptocurrency portion of the application! Go over the core cryptocurrency objects: wallets, keys, transactions, and more!
-
51Code OrganizationVídeo Aula
In anticipation of the cryptocurrency portion, organize the code base to make additions more easily.
-
52Create and Test Wallet ClassVídeo Aula
Develop the primary cryptocurrency object - the wallet - through test-driven development.
-
53Key Pair and Public Key AddressesVídeo Aula
Add the crucial key pair and public addresses aspect to the cryptocurrency wallets.
-
54Sign Data and Verifying SignaturesVídeo Aula
Ensure that wallets have the ability to add their signature to objects in the cryptocurrency. Also make sure that signatures can be verified - to validate signed cryptocurrency data.
-
55Transaction Objects and the OutputMap | TestsVídeo Aula
Build the tests the next core cryptocurrency object - the transaction. Use an outputMap structure to efficiently track multiple recipients/amounts in the transaction.
-
56Transaction Objects and the OutputMap | CodeVídeo Aula
Create the code to get the transaction objects tests to pass. If you'd like, take this opportunity to write the code yourself!
-
57Transaction InputsVídeo Aula
Add the next half of the transaction objects - inputs. This will contain information about the sender - address, signature, etc.
-
58Cohesive UtilityVídeo Aula
Update the utility methods in this project to be more cohesive.
-
59Validate TransactionVídeo Aula
Make sure that transactions are not malformed through validation methods.
-
60Wallet Create TransactionVídeo Aula
Tie the two core cryptocurrency objects - wallets and transactions - together. A wallet.createTransaction() method will save time for generating wallet-specific transactions.
-
61Update Transactions with Multiple OutputsVídeo Aula
Take advantage of the outputMap structure to allow updates for the same recipient, and additions for new recipients.
-
62Improve the CryptoHashVídeo Aula
Why won't the cryptoHash generate unique hashes when an object's properties change.
-
63Transaction Update Edge CasesVídeo Aula
Cover edge cases with updating transactions. Make sure that the input and remaining balance output are accurate.
-
64Recap: Wallets, Keys, and Transactions | The Cryptocurrency BackendTexto
Review this section!
-
65Commits for This SectionTexto
-
66Transaction Pool OverviewVídeo Aula
Gain an understanding of the crucial transaction pool - a data structure which will collect transactions from multiple actors in the cryptocurrency.
-
67Create the Transaction Pool and Set TransactionsVídeo Aula
Create the transaction pool object, along with functionality to set transactions in the structure.
-
68API Transactions and Main Transaction PoolVídeo Aula
Add a way for transactions to be create-able via the API, and instantiate a main transaction pool for the application.
-
69Handle Invalid TransactionsVídeo Aula
Do we want invalid transactions? No!
-
70Transaction Updates in the APIVídeo Aula
Make sure that transactions are update-able when the same node conducts a transaction again through the API.
-
71Get Transaction Pool MapVídeo Aula
Expose the transaction pool map data through the API.
-
72Broadcast TransactionVídeo Aula
Like the blockchain, the transaction data should be broadcasted to all interested parties (so everyone) in the cryptocurrency!
-
73Pubnub Set Transaction Edge CaseTexto
-
74Sync Transaction Pool Map on ConnectVídeo Aula
Make sure that the transaction pool map is also in sync (like the blockchain) with the current application state when a peer connects to the network.
-
75Recap: Transaction Pool | the Blockchain BackendTexto
Review this section!