<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Matt</title>
    <description>The latest articles on Forem by Matt (@weg2g).</description>
    <link>https://forem.com/weg2g</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F191035%2Fe9d9e6cb-34c2-477d-879c-c11165c89704.jpeg</url>
      <title>Forem: Matt</title>
      <link>https://forem.com/weg2g</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/weg2g"/>
    <language>en</language>
    <item>
      <title>Blockchain Game Finance and DeFi with NFT</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Sun, 27 Feb 2022 14:43:30 +0000</pubDate>
      <link>https://forem.com/weg2g/blockchain-game-finance-and-defi-with-nft-1od6</link>
      <guid>https://forem.com/weg2g/blockchain-game-finance-and-defi-with-nft-1od6</guid>
      <description>&lt;p&gt;The blockchain community and especially DeFi space have gained tremendous momentum since last year. At the same time, online NFT marketplaces are experiencing enormous traffic as many NFT fans are finding creative ways to convert physical and tangible assets into Non-fungible ones, as seen in the huge success of the Metaverse project. As such, the market cap of promising NFT projects are on the rise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Cap
&lt;/h2&gt;

&lt;p&gt;As a whole, the current two major trends in the IT industry consist of gaming and crypto where their online revenue and market cap are increasing on a daily basis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Online Game Market
&lt;/h2&gt;

&lt;p&gt;The revenue from virtual games and online entertainment will grow from $180B in 2020 to $400B in 2025 (majority of growth goes to in-game spending)&lt;/p&gt;

&lt;h2&gt;
  
  
  Crypto and NFT Market
&lt;/h2&gt;

&lt;p&gt;In Q3 2021 alone the total crypto fundraising was $8.2B, out of which $1.2B went to Web3 and NFT. Also, fundraising in NFT games overshadows others in Q3 2021 by $1B.&lt;/p&gt;

&lt;h1&gt;
  
  
  NFT- New Promise of Game Finance
&lt;/h1&gt;

&lt;p&gt;While current trends show a magnificent success of NFTs, many analysts believe that NFT has not yet fully tapped its potential. Indeed, we are at a very early stage of seeing how NFT is going to impact DeFi and more specifically game finance. Motivated by untapped market opportunity, RealBig is to harness the real power of NFT in game finance where NFT assets are used as an instrument for financial investment similar to traditional stock or bonds. In its business model, not only NFT owners can sell their assets to the secondary market, but also they can collect dividends on a monthly basis. As a matter of fact, with finite supply of NFT in its system and increasing value of NFT as result of platform activities will return an exponential increase in the value of NFT in such a way that an NFT asset can be treated as an independent financial instrument.&lt;/p&gt;

&lt;h2&gt;
  
  
  How RealBig NFT Works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.realbig.world/"&gt;RealBig&lt;/a&gt; is a platform that offers a variety of lottery prize games. In addition to prize games, it offers NFT game finance via a virtual league. Its virtual league consists of 5 clubs (each has 4 teams of different player sizes). In total, there will be 70 players where each player is represented as an NFT asset. The system runs competitions among teams within a club and across different clubs and anytime a player wins, its owner receives 20% of prize value as its dividend. Read our White Paper to learn more. Watch below video to learn more:&lt;br&gt;
&lt;a href="https://youtu.be/je0fXjIZniY"&gt;https://youtu.be/je0fXjIZniY&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nft</category>
      <category>defi</category>
      <category>gamefi</category>
      <category>polygon</category>
    </item>
    <item>
      <title>What is Programming and Who Is a Programmer</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Wed, 16 Dec 2020 18:31:04 +0000</pubDate>
      <link>https://forem.com/weg2g/what-is-programming-and-who-is-a-programmer-531p</link>
      <guid>https://forem.com/weg2g/what-is-programming-and-who-is-a-programmer-531p</guid>
      <description>&lt;p&gt;Without a doubt, terms like developers, programmers, Full-Stack engineers, etc are becoming buzzwords among the public, yet the element of programming is common among all of them. So this article in a nutshell helps you understand what is the foundation behind computer science or software engineering. It is worth mentioning that coding and programming terms are often used interchangeably.  &lt;/p&gt;

&lt;p&gt;Put it simply, a programmer is a person who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming language or to a generalist who writes code for many kinds of software. Also, often the software and application terms are used interchangeably among IT professionals. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A programmer's primary computer language (Assembly, COBOL, C, C++, C#, &lt;a href="http://coding-bootcamps.com/course_info.php?urlfriendly=introduction-to-Android-Java-mobile-Application-Development"&gt;Java&lt;/a&gt;, Lisp, Python, etc.) is often prefixed to these titles, and those who work in a web environment often prefix their titles with web. A full spectrum of occupations, including: software developers, web developers, mobile applications developers, embedded firmware developers, cloud engineers, software engineers, computer scientists, or software analysts, while they do involve programming, also requires a range of other skills. For instance, all programmers need to have good analytical and problem solving skills as well as soft skills like communication. Also, programmers in general need to be creative as they often need to come up with unique solutions to new problems. Lastly, the changes in the IT landscape require programmers to learn new techniques, tools and terminologies frequently. Indeed, many companies have routine plans to upskill their technical teams.&lt;/p&gt;

&lt;p&gt;Computer Programming is a process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation (known as coding) of algorithms in a target programming language. Source code is written in one or more programming languages. The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem. The process of programming thus often requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic. It is worth mentioning that all programming languages have one thing in common- the programming logic. For instance, the conditional statement logic is the same in Java, C++ and PHP; however, they use different languages known as syntax to represent the logic. At a very high level, there are 6 major career tracks for IT professionals: web developer, mobile App developer, software engineer, cloud engineer, system administration, and blockchain. &lt;a href="https://learn.coding-bootcamps.com/p/introduction-to-information-technology-career-roadmap-for-beginners"&gt;Here&lt;/a&gt; is a free course for learning more about said 6 career tracks.&lt;/p&gt;

&lt;p&gt;Other related tasks of programmers are testing, debugging, and maintaining the source code, implementation of the build system, and management of derived artifacts such as machine code of computer programs. These might be considered part of the programming process, but often the term software or application development is used for this larger process with the term programming, implementation, or coding reserved for the actual writing of source code. Software engineering combines engineering techniques with software development practices. One of most popular and well-established methodologies for software engineering is Software Development Life Cycle (SDLC). It follows the below 6 essential steps sequentially for building high quality software applications.  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Requirement analysis&lt;/li&gt;
&lt;li&gt; Planning&lt;/li&gt;
&lt;li&gt; Software design such as architectural design&lt;/li&gt;
&lt;li&gt; Software development&lt;/li&gt;
&lt;li&gt; Testing&lt;/li&gt;
&lt;li&gt; Deployment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Computer Program is a collection of instructions that performs a specific task when executed by a computer. A computer requires programs to function and typically executes the program's instructions in a central processing unit. Unlike humans, computers just blindly follow the instructions and can not judge whether instructions are true or false. As such, if a computer receives erroneous instructions as its input, it will output errors or misleading results. Therefore, designing a well-thought-out program requires lots of foresight.&lt;/p&gt;

&lt;p&gt;A computer program is usually written by a computer programmer in a programming language. From the program in its human-readable form of source code, a compiler can derive machine code—a form consisting of instructions that the computer can directly execute. Alternatively, a computer program may be executed with the aid of an interpreter. A part of a computer program that performs a well-defined task is known as an algorithm. A collection of computer programs, libraries, and related data are referred to as software. Computer programs may be categorized along functional lines, such as application software and system software.&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;p&gt;In this article, we briefly reviewed the terms like programming and programmer and highlighted the context in which these terms are used. This article gives you a roadmap for becoming a software or application developer. Specifically, the first step in becoming a programmer is to choose a right &lt;a href="https://coding-bootcamps.com/career_track.html"&gt;IT career path&lt;/a&gt;. Then, start learning one or two coding languages and practice them.  Read &lt;a href="https://coding-bootcamps.com/blog/comprehensive-overview-of-coding-and-computer-programming.html"&gt;Comprehensive Review of Coding and Computer Programming&lt;/a&gt; article to learn more on the history and evolution of programming.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;p&gt;Here is a list of free courses for starting your programming career.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://learn.coding-bootcamps.com/p/introduction-to-information-technology-career-roadmap-for-beginners"&gt;IT Career Roadmap Explained&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/learn-how-to-build-websites-with-bootstrap-by-examples"&gt;Web Design with Bootstrap&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/learn-how-to-improve-user-experiences-for-websites"&gt;User Experience Best Practices&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/learn-how-search-engine-optimization-works"&gt;Intro to Search Engine Optimization&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/introduction-to-wordpress-web-development"&gt;Web Design with WordPress&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/build-dynamic-websites-with-drupal-by-examples"&gt;Introduction to Drupal CMS&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/build-dynamic-websites-with-joomla-by-examples"&gt;Intro to Joomla CMS&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/essential-practical-guide-to-cybersecurity-for-system-admin-and-developers"&gt;Intro to Cybersecurity&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/introduction-to-cloud-technology"&gt;Introduction to Cloud Technology&lt;/a&gt;&lt;br&gt;
    &lt;a href="https://learn.coding-bootcamps.com/p/recorded-live-webinars-and-classes"&gt;Recorded Live Webinars and Classes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>career</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>5 Benefits of Implementing AI in Business Processes</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Mon, 05 Oct 2020 13:23:57 +0000</pubDate>
      <link>https://forem.com/weg2g/5-benefits-of-implementing-ai-in-business-processes-3jpi</link>
      <guid>https://forem.com/weg2g/5-benefits-of-implementing-ai-in-business-processes-3jpi</guid>
      <description>&lt;p&gt;In the past few years, more and more companies have started to implement artificial intelligence in their business process, and in the coming year, this number will only go up. There was a time when the idea of artificial intelligence seemed absurd and impossible, but today it is at a stage that it is hard for business owners to ignore what it can bring to the table.  If you are still skeptical about it and are wondering &lt;a href="https://www.whatech.com/collaboration/press-release/640033-10-online-collaboration-tools-for-managing-remote-teams"&gt;Why Artificial Intelligence Should be Deployed&lt;/a&gt; for business functions, then this article is for you. Below I have mentioned a few benefits of implementing AI in business processes that will help you understand its importance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Savings
&lt;/h3&gt;

&lt;p&gt;One of the major benefits of implementing AI in business processes is that it reduces the expenses by automating certain processes. With the help of AI, businesses can now automate a lot of processes for which they needed additional resources in the past. You do not have to hire extra employees or freelancers anymore to complete certain tasks. Also, when the simplest of the process is automated, your employees will focus on the more important things that will make them more efficient. This not only frees up time for them but also clears the clutter around them, allowing them to focus more. This can enhance employees’ productivity dramatically as they will have a clear mind most of the time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Helps with Decision Making
&lt;/h3&gt;

&lt;p&gt;Another major benefit of AI for businesses is that it allows us to make better decisions. AI gives us clear and in-depth insights that allow us to make decisions that are based on data. These days’ businesses are dealing with tons of data on a daily basis. This is especially true for large enterprises who are sending and receiving hard data every day and can easily convert that data into insights. If you want to stay competitive in the market, then you will have to use this extensive data to your advantage. It allows you to understand market trends and customer behaviors that can predict your businesses’ future quite accurately. So, you need to create an environment in your workplace where these processes can be normalized.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Mining
&lt;/h3&gt;

&lt;p&gt;Most people do not talk about data mining, but it is probably the most exciting use of artificial intelligence. AI has become so advanced that you can now take all the data from a user and use it to discover vital things that can help you with business decisions. When you have so much data available at your disposal, you can dominate the market and predict your future competitors. Keep in mind; data mining is not something that will prove or disprove certain hypotheses for you. Instead, it will provide you with answers to such advanced questions that you might not even be thinking about. Also, this data can be used for machine learning as well, which certain businesses can use to conquer new heights and introduce revolutionary change in the industry.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improved Security for Data
&lt;/h3&gt;

&lt;p&gt;Another major benefit of using artificial intelligence for business is that it provides you better security for your data. If your business is relevant to the banking or the financial sector, this can become quite handy. Unlike other types of security methods, AI does not only provide you protection against hackers but it can identify fraudulent attempts as well and can predict attacks even before they happen. In this modern age, data is everything, and if your company’s data falls into the wrong hands, it can do a lot of damage. So if you don’t want something like that happening to your business, it is time you &lt;a href="https://www.cio.com/article/3433157/5-ways-to-fast-track-your-next-ai-implementation.html"&gt;Accelerate Your Company's AI Implementation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improved Recruitment Process
&lt;/h3&gt;

&lt;p&gt;If you are a recruitment company, this might not be good news for you, but if you are another business, this can save you from a lot of hassle. With the help of AI, businesses can now automate their recruitment process for new employees. It can read all the job applications smartly and automatically reject those that do not meet the company's criteria. This helps the HR personnel save time and ensures that only the best recruits are hired for the job. &lt;/p&gt;

</description>
      <category>ai</category>
      <category>businessautomation</category>
      <category>bigdata</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Blockchain Ethereum Development Guide from A to Z</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Mon, 22 Jul 2019 18:38:04 +0000</pubDate>
      <link>https://forem.com/weg2g/blockchain-ethereum-development-guide-from-a-to-z-22fb</link>
      <guid>https://forem.com/weg2g/blockchain-ethereum-development-guide-from-a-to-z-22fb</guid>
      <description>&lt;p&gt;Ethereum is a general-purpose blockchain that is geared  toward describing business logic, through advanced scripts, also known as smart  contracts. Ethereum was designed with a broader vision, as a decentralized or  world computer that attempts to marry the power of the blockchain, as a trust  machine, with a Turing-complete contract engine. Although Ethereum borrows many  ideas that were initially introduced by bitcoin, there are many divergences  between the two.&lt;br&gt;
  Solidity is an &lt;a href="https://weg2g.com/application/touchstonewords/article-object-oriented-programming-topics-that-any-software-engineer-need-to-know.php"&gt;object-oriented&lt;/a&gt;, high-level language for implementing smart contracts. Smart contracts  are programs which govern the behavior of accounts within the Ethereum state. Solidity  was influenced by &lt;a href="https://weg2g.com/application/touchstonewords/article-what-is-c-object-oriented-programming-language-and-how-and-where-to-use-it.php"&gt;C++&lt;/a&gt;, &lt;a href="https://weg2g.com/application/touchstonewords/article-what-is-python-programming-language-and-how-and-where-to-use-it.php"&gt;Python&lt;/a&gt; and &lt;a href="https://weg2g.com/application/touchstonewords/article-what-is-javascript-programming-language-and-why-it-is-very-popular.php"&gt;JavaScript&lt;/a&gt; and is designed to target the Ethereum Virtual Machine (EVM). Solidity  is statically typed, supports inheritance, libraries and complex user-defined  types among other features. With Solidity you can create contracts for uses  such as voting, crowdfunding, blind auctions, and multi-signature wallets.&lt;br&gt;
  The Ethereum virtual machine and smart contracts  are key elements of Ethereum, and constitute its main attraction. In Ethereum,  smart contracts represent a piece of code written in a high-level language  (Solidity, LLL, Viper) and stored as bytecode in the blockchain, in order to  run reliably in a stack-based virtual machine (Ethereum Virtual Machine), in  each node, once invoked. The interactions with smart contract functions happen  through transactions on the blockchain network, with their payloads being  executed in the Ethereum virtual machine, and the shared blockchain state being  updated accordingly.&lt;br&gt;
  &lt;br&gt;
  For those who are not familiar with blockchain technology reading &lt;a href="https://myhsts.org/tutorial-history-and-evolution-of-blockchain-technology-from-bitcoin.php"&gt;History  and Evolution of Blockchain Technology from Bitcoin&lt;/a&gt; article is strongly recommended. Also,  if you wish to learn and practice Hyperledger blockchain development, visit &lt;a href="https://myhsts.org/tutorial-comprehensive-blockchain-hyperledger-developer-guide-for-all-professional-programmers.php"&gt;Comprehensive  Hyperledger Training Tutorials&lt;/a&gt; page to get the outline of our  Hyperledger tutorial articles. &lt;/p&gt;

&lt;p&gt;We  have written two groups of recipes to explore Ethereum and Solidity coding in  details. First group covers the following nine tutorials:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-about-ethereum-blockchain-development-with-dapps-and-ethereum-vm.php"&gt;Introduction to Ethereum Blockchain  Development with DApps and Ethereum VM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-auction-dapp-with-ethereum-and-solidity-programming-language.php"&gt;Building Auction DApp With Ethereum and  Solidity Programming Language&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-blockchain-applications-through-remix-ide.php"&gt;Working with Ethereum Blockchain  Applications through Remix IDE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-bidding-form-in-web3js-for-ethereum-auction-dapp.php"&gt;Building Bidding Form in Web3js for  Ethereum Auction DApp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/working-with-web3js-api-and-json-to-build-ethereum-blockchain-applications/"&gt;Working with web3js API and JSON to  Build Ethereum Blockchain Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://dev.to/weg2g/deployment-environments-for-managing-ethereum-smart-contracts-16ha"&gt;Deployment Environments for Managing  Ethereum Smart Contracts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-private-network-with-golang-with-geth.php"&gt;Work with Ethereum Private Network with  Golang with Geth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-compile-and-deploy-ethereum-contracts-using-solidity-compiler.php"&gt;Compiling and Deploying Ethereum  Contracts Using Solidity Compiler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-ethereum-auction-dapp-with-some-solidity-tips.php"&gt;Running Ethereum Auction DApp and  Solidity Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In summary,  you learn about how to set up and configure Ethereum and develop blockchain  applications using Solidity coding language. We explore its essential  components such as smart contracts and Web3.JS API via an Auction Decentralized  Application (DApp) step-by-step. &lt;br&gt;
  In  second group, we will discuss more advance topics in Ethereum blockchain  development and solidity while building a Tontine DApp game step-by-step. In  particular, we discuss Truffle and Drizzle. For example, we show you how a tool  such as Truffle can be an assistant in building, testing, debugging, and  deploying DApps. In short, we are going to cover four main topics: &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Exploring the Truffle suite&lt;/li&gt;
  &lt;li&gt;Learning Solidity's advanced features&lt;/li&gt;
  &lt;li&gt;Contract testing and debugging &lt;/li&gt;
  &lt;li&gt;Building a user interface using Drizzle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 2nd  set consists of 8 recipes as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-install-truffle-and-setup-ganache-for-compiling-ethereum-smart-contracts-for-tontine-dapp-game.php"&gt;Install Truffle and Setup Ganache for  Compiling Ethereum Smart Contracts for Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-tontine-ethereum-dapp-game-contract.php"&gt;Run Tontine Ethereum DApp Game Contract&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-design-tontine-ethereum-dapp-game-interfaces.php"&gt;Design Tontine Ethereum DApp Game  Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-about-blockchain-contract-interactions-between-ethereum-and-solidity-via-tontine-dapp-game.php"&gt;Contract Interactions between Ethereum  and Solidity via Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/work-with-ethereum-solidity-and-truffle-unit-testing-in-tontine-dapp-game/"&gt;Work with Truffle Unit Testing in  Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://dev.to/weg2g/debugging-with-truffle-and-ethereum-remix-in-tontine-dapp-game-20mi"&gt;Debugging with Truffle and Ethereum  Remix in Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-frontend-blockchain-application-for-Ethereum-dapp-game-with-drizzle.php"&gt;Building Frontend Application for Tontine  DApp Game with Drizzle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-and-play-tontine-ethereum-dapp-game.php"&gt;Running and Playing Tontine Ethereum  DApp Game&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a reminder, understanding and finishing the first group  of recipes are required prior to working on second one.  &lt;br&gt;
  &lt;br&gt;
  Here are a few  more hands-on tutorials covering advance topics in Ethereum blockchain  development: &lt;a href="https://blockchain.dcwebmakers.com/blockchain-as-a-service-apps-using-ethereum-and-quorum.html"&gt;Building Enterprise  Blockchain-as-a-Service Applications Using Ethereum and Quorum&lt;/a&gt;, &lt;a href="https://blockchain.dcwebmakers.com/work-with-distributed-storage-ipfs-and-swarm-in-ethereum.html"&gt;Harness the Power of Distributed  Storage IPFS and Swarm in Ethereum Blockchain Applications&lt;/a&gt;, and &lt;a href="https://myhsts.org/ethereum-financial-app-with-java-and-web3j-api-through-blockchain-oracles.html"&gt;Blockchain Developer  Guide- How to Build Ethereum Financial Applications With Java and Web3J API  Through Blockchain Oracles&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About Authors&lt;/strong&gt;&lt;br&gt;
  This article  is written by Matt Zand (Founder of &lt;a href="https://myhsts.org"&gt;High School Technology Services&lt;/a&gt;, &lt;a href="https://hashflow.us"&gt;Hash Flow&lt;/a&gt;, and &lt;a href="https://coding-bootcamps.com"&gt;Coding Bootcamps&lt;/a&gt;) in collaboration with Brian Wu who is an advisor at &lt;a href="https://blockchain.dcwebmakers.com/"&gt;DC Web Makers&lt;/a&gt;. &lt;/p&gt; 

</description>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>javascript</category>
      <category>solidity</category>
    </item>
    <item>
      <title>Debugging with Truffle and Ethereum Remix in Tontine DApp Game</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Fri, 12 Jul 2019 18:40:34 +0000</pubDate>
      <link>https://forem.com/weg2g/debugging-with-truffle-and-ethereum-remix-in-tontine-dapp-game-20mi</link>
      <guid>https://forem.com/weg2g/debugging-with-truffle-and-ethereum-remix-in-tontine-dapp-game-20mi</guid>
      <description>&lt;p&gt;Ethereum is a general-purpose blockchain that is  more suited to describing business logic, through advanced scripts, also known  as smart contracts. Ethereum was designed with a broader vision, as a  decentralized or world computer that attempts to marry the power of the  blockchain, as a trust machine, with a Turing-complete contract engine.  Although Ethereum borrows many ideas that were initially introduced by bitcoin,  there are many divergences between the two.&lt;br&gt;
  The Ethereum virtual machine and smart contracts  are key elements of Ethereum, and constitute its main attraction. In Ethereum,  smart contracts represent a piece of code written in a high-level language  (Solidity, LLL, Viper) and stored as bytecode in the blockchain, in order to  run reliably in a stack-based virtual machine (Ethereum Virtual Machine), in  each node, once invoked. The interactions with smart contract functions happen  through transactions on the blockchain network, with their payloads being  executed in the Ethereum virtual machine, and the shared blockchain state being  updated accordingly.&lt;br&gt;
  &lt;br&gt;
  For those who are not familiar with blockchain technology reading &lt;a href="https://myhsts.org/tutorial-history-and-evolution-of-blockchain-technology-from-bitcoin.php"&gt;History  and Evolution of Blockchain Technology from Bitcoin&lt;/a&gt; article is strongly recommended. Also,  if you wish to learn and practice Hyperledger blockchain development, visit &lt;a href="https://myhsts.org/tutorial-comprehensive-blockchain-hyperledger-developer-guide-for-all-professional-programmers.php"&gt;Comprehensive  Hyperledger Training Tutorials&lt;/a&gt; page to get the outline of our  Hyperledger tutorial articles. &lt;br&gt;
  We  have written two sets of tutorials to explore Ethereum and Solidity programming  in depth. First set covered the following nine recipes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-about-ethereum-blockchain-development-with-dapps-and-ethereum-vm.php"&gt;Introduction to Ethereum Blockchain  Development with DApps and Ethereum VM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-auction-dapp-with-ethereum-and-solidity-programming-language.php"&gt;Building Auction DApp With Ethereum and  Solidity Programming Language&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-blockchain-applications-through-remix-ide.php"&gt;Working with Ethereum Blockchain  Applications through Remix IDE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-bidding-form-in-web3js-for-ethereum-auction-dapp.php"&gt;Building Bidding Form in Web3js for  Ethereum Auction DApp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/working-with-web3js-api-and-json-to-build-ethereum-blockchain-applications/"&gt;Working with web3js API and JSON to  Build Ethereum Blockchain Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://dev.to/weg2g/deployment-environments-for-managing-ethereum-smart-contracts-16ha"&gt;Deployment  Environments for Managing Ethereum Smart Contracts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-private-network-with-golang-with-geth.php"&gt;Work with Ethereum Private Network with  Golang with Geth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-compile-and-deploy-ethereum-contracts-using-solidity-compiler.php"&gt;Compiling and Deploying Ethereum  Contracts Using Solidity Compiler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-ethereum-auction-dapp-with-some-solidity-tips.php"&gt;Running Ethereum Auction DApp and  Solidity Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In  short, you learned about how to set up and configure Ethereum and develop  blockchain applications using Solidity programming language. We explored its  key components, including smart contracts and Web3.JS API via an Auction  Decentralized Application (DApp) step-by-step. &lt;br&gt;
  In  second set, we discuss more advance topics in Ethereum blockchain development  and solidity while building a Tontine DApp game step-by-step. Specifically, we  cover Truffle and Drizzle. For instance, we show you how a tool such as Truffle  can be an assistant in building, testing, debugging, and deploying DApps. In  summary, we are going to cover four main topics: &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Exploring the Truffle suite&lt;/li&gt;
  &lt;li&gt;Learning Solidity's advanced features&lt;/li&gt;
  &lt;li&gt;Contract testing and debugging &lt;/li&gt;
  &lt;li&gt;Building a user interface using Drizzle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The 2nd  set consists of 8 recipes as follows:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-install-truffle-and-setup-ganache-for-compiling-ethereum-smart-contracts-for-tontine-dapp-game.php"&gt;Install Truffle and Setup Ganache for  Compiling Ethereum Smart Contracts for Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-tontine-ethereum-dapp-game-contract.php"&gt;Run  Tontine Ethereum DApp Game Contract&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-design-tontine-ethereum-dapp-game-interfaces.php"&gt;Design Tontine Ethereum DApp Game  Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-about-blockchain-contract-interactions-between-ethereum-and-solidity-via-tontine-dapp-game.php"&gt;Contract Interactions between Ethereum  and Solidity via Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/work-with-ethereum-solidity-and-truffle-unit-testing-in-tontine-dapp-game/"&gt;Work with Truffle Unit Testing in  Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Debugging  with Truffle and Ethereum Remix in Tontine DApp Game&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-frontend-blockchain-application-for-Ethereum-dapp-game-with-drizzle.php"&gt;Building Frontend Application for  Tontine DApp Game with Drizzle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-and-play-tontine-ethereum-dapp-game.php"&gt;Running and Playing Tontine Ethereum  DApp Game&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;IMPORTANT: Understanding and completing the first set of recipes are  required prior to working on second set of recipes. &lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
  In our first round of recipes, we learned a lot  about the Ethereum ecosystem, but we are yet to realize the full potential of  its different components. More precisely, we explored how Ethereum works, what  a &lt;strong&gt;decentralized application &lt;/strong&gt;(&lt;strong&gt;DApp&lt;/strong&gt;) is and how to build one, and also covered  the key concepts of Solidity  and web3.js. We then introduced some of the most  common smart contract design patterns (withdrawal from a contract, restricting  access, state machines), before ending  with a discussion of a contract’s cost optimization.&lt;br&gt;
To brush up your knowledge and skills, on second  round of recipes, we are going to build a Tontine DApp game. We will exploit  this example to explore new tools that are going to change the way you build DApps, and introduce  new Solidity features. &lt;/p&gt;
&lt;p&gt;In this walkthrough, we will discover how a tool such as Truffle can aid in building, testing, debugging, and deploying our  DApp. &lt;/p&gt;
&lt;p&gt;Developers familiar with debugging will find this a welcome relief. Truffle  and Remix provide built-in debugging features to help us understand where the  code fails. This section provides a general overview of debugging in Truffle  and Remix. If you are familiar with debugging using other IDEs, such as Eclipse  or NetBeans, you will find Truffle and  Remix similarly useful, even though they're less powerful.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h4&gt;Debugging with Truffle&lt;/h4&gt;
&lt;p&gt;Truffle includes a built-in debugger to debug  transactions made against your contracts. It supports elementary debugging  operations, such as code-stepping (over, into, out, next, and instruction),  breakpoints, and watching expressions. &lt;/p&gt;
&lt;p&gt;To try the debugging  features, let's intentionally introduce a bug into the Ctontine  contract and redeploy it into Ganache.  Afterward, we will run the tests and use Truffle’s debugger to detect the source  of the error.&lt;br&gt;
  First, in the Ctontine contract code, change the first require() statement in  the join() &lt;br&gt;
  method as follows:&lt;/p&gt;
&lt;p&gt;require(!Tplayer.exist(msg.sender));&lt;/p&gt;
&lt;p&gt;As you can see, we reversed the required condition  by adding an exclamation mark, "!",  indicating that the player shouldn’t be registered in the Cplayer contract. This goes against our previous test's logic as we  add the testing player before calling each unit test, including a test for the join() method.&lt;br&gt;
  Now, if you run the truffle test test/test.js --network my_ganache tests, you will see the  following error: &lt;br&gt;
  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j9ggGz13--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j9ggGz13--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-1.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;




&lt;p&gt;The output shows that we have a serious problem with the Ctontine tests and the VM exception while  processing transaction error message  isn’t much help in detecting the cause behind it. Let’s chase the  bug. &lt;/p&gt;
&lt;br&gt;
  &lt;h5&gt;Spotting the error&lt;/h5&gt;
&lt;br&gt;
  &lt;p&gt;To debug the previous error, copy the transaction ID from ganache-cli:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oP8T-g6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oP8T-g6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-2.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Then feed it as an argument to the truffle debug &amp;lt;tx id&amp;gt; --network my_ganache &lt;br&gt;&lt;br&gt;
    debug command.&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;In this case, we run:&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;&lt;strong&gt;truffle  debug 0x90e02cc211733cade22bd5ff3b1ea1600781b48a1c792d867cda83190f773319 --  network my_ganache&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Once executed, you’ll enter Truffle's debugging  mode, as shown the following screenshot:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vn2T4duf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vn2T4duf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-3.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Keep pressing the &lt;em&gt;Enter &lt;/em&gt;button to step through the code and trace the execution  steps. Finally, the debugger will stop with an error message:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z6hNRXdt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z6hNRXdt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-4.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;


&lt;p&gt;As a result,  Truffle's debugger indicates that the exception (error) is raised due to a  failed require() statement,  as the evaluated expression (!Tplayer.exist(msg.sender)) will definitively always  be false. This is because,  if you remember, in the join()  test we added the player  first, therefore the exist() function will be always true, and hence our faulty require() will fail. The important point is that Truffle indicates  to us where the code fails with an interesting message,  instead of the previous error message generated by the VM.&lt;/p&gt;
&lt;br&gt;
  &lt;h5&gt;Breakpoints and  watching values&lt;/h5&gt;
&lt;br&gt;
  &lt;p&gt;More importantly, Truffle’s debugger  console enables you to toggle a breakpoint by pressing b and then pressing c to debug until reaching the breakpoint.  Additionally, you can choose a variable (state  or local) to watch using +:variable_name or by pressing v at  any debugging step.&lt;br&gt;&lt;br&gt;
    For example, if we debug the transaction initiated by the first (successful) Cplayer test (the addPlayer() test),  we can visualize the values of each variable using the v option, as follows:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SUdXyylp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SUdXyylp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-5.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;


&lt;p&gt;Make sure to  experiment with all the debugger features introduced earlier. A good start  point would be to read Truffle’s documentation.&lt;br&gt;&lt;br&gt;
  Now, roll back the changes, and save the contract  to try debugging with Remix.&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt; &lt;/p&gt;
&lt;br&gt;
  &lt;h4&gt;Debugging with Remix&lt;/h4&gt;
&lt;br&gt;
  &lt;p&gt;If you’re not a fan of CLI tools, Remix is a good debugging alternative for you. In fact, Remix provides a graphical interface  with many more options.&lt;br&gt;&lt;br&gt;
    Start and connect Remix to Ganache as we did in the  previous recipes. Once connected, you will be able to debug the previous  transaction we debugged using Truffle. First of all, we need to activate the  debugging mode. There are several ways to achieve that, the easiest way being  to browse to the debugger tab in the right-hand panel, and then provide either  a transaction hash (transaction index) or a block number in the debugging  input:&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FjHP1ITr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FjHP1ITr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-6.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;In Remix's right-hand pane, on the debugging form  with several controls, press the play button to start debugging. You’ll get a  debugging menu with the views depicted here:&lt;/p&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3e2cD_nu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3e2cD_nu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-7.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;The views are listed as follows:&lt;/p&gt;
&lt;br&gt;
  &lt;ul&gt;

    &lt;ul&gt;

      &lt;ul&gt;

        &lt;ul&gt;

          &lt;li&gt;
&lt;strong&gt;Instructions&lt;/strong&gt;: Lists  the executed opcodes &lt;/li&gt;

          &lt;li&gt;
&lt;strong&gt;Solidity &lt;/strong&gt;L&lt;strong&gt;ocals&lt;/strong&gt;: Shows the content of  local variables in the current scope&lt;/li&gt;

          &lt;li&gt;
&lt;strong&gt;Solidity State&lt;/strong&gt;: Displays state variables of the current executing contract&lt;/li&gt;

          &lt;li&gt;
&lt;strong&gt;Step detail&lt;/strong&gt;: Displays the current step's execution details (remaining gas and VM  trace step)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      &amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Stack&amp;lt;/strong&amp;gt;:  Displays the local variables values stored in the stack&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Storage&amp;lt;/strong&amp;gt;:  Displays the contract storage entries(key, value) as shown here:&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;br&gt;
  &lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ax3NGjB3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ax3NGjB3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-8.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;ul&gt;

    &lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt;:  Provides a view into the memory space that is used by the contract &lt;/li&gt;

    &lt;li&gt;
&lt;strong&gt;Call Data&lt;/strong&gt;: Usually contains a 4-byte method signature followed by serialized arguments&lt;/li&gt;

  &lt;/ul&gt;
&lt;br&gt;
  &lt;p&gt;The slider bar at the top (transaction  section) helps you advance or roll back the execution of the transaction  (debugging) easily to visualize the evolution of the available debugging  information.&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Below the slider, Remix provides a set of buttons  at the top of the toolbar for controlling the execution of the transaction you  are debugging:&lt;/p&gt;
&lt;br&gt;
  &lt;ul&gt;

    &lt;li&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TRYJkXHV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-9.jpg" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8cN-G4MP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-10.jpg" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hUSTyNRI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-11.jpg" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;strong&gt;Step through a transaction's payload execution using the debugging  buttons&lt;/strong&gt;: Single over back &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vpqPbuOO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-12.jpg" alt="Ethereum blockchian debugging with Truffle"&gt;, step back    , step into    ,  and step over &lt;/li&gt;

    &lt;li&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cfuDM4fi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-13.jpg" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sj1PuNZ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-14.jpg" alt="Ethereum blockchian debugging with Truffle"&gt;You can stop debugging and resume operations at any time using the respective debugging buttons:                                   and &lt;/li&gt;

  &lt;/ul&gt;
&lt;br&gt;
  &lt;p&gt; &lt;/p&gt;

&lt;p&gt;Debugging the previous faulty transaction using the  transaction’s ID with Remix debugger boils down to dealing with crude information,  including the list of executed opcodes. In this first case, the debugger shows  us that the execution ends with a REVERT instruction:&lt;/p&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HSnQOx7l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-15.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HSnQOx7l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-15.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;If you follow the JUMP instructions  and the values being loaded into the stack, you’ll be able to trace the source  of the exception. However, I highly suspect you can't (or don't want to) deal  with this hard task, which is why we are proposing an easier alternative in the  remainder of this section.&lt;/p&gt;
&lt;br&gt;
  &lt;h5&gt;Attaching the debugger  to the code&lt;/h5&gt;
&lt;br&gt;
  &lt;p&gt;Using Remix’s debugger with only the transaction ID can be a  little troublesome for beginners trying to spot where the code breaks, without  having the debugger attached to the code. To make the attachment, we need to  load the contract code and connect Remix to the new instance you’ve migrated in  Ganache.&lt;/p&gt;


&lt;p&gt;First, import the contract file from Truffle’s folder, as  follows:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QX9zejBy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-16.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QX9zejBy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-16.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Deploy the  contract into Ganache  using truffle migrate –reset –network my_ganache, then retrieve the contract's address: &lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tKwkufpz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-17.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tKwkufpz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-17.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Under the &lt;strong&gt;Run &lt;/strong&gt;tab, connect Remix to the deployed Ctontine contract using the &lt;strong&gt;At Address &lt;/strong&gt;button (not &lt;strong&gt;Deploy&lt;/strong&gt;).  We then do the same for Cplayer. You’ll end up with  two contracts loaded into Remix.&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Then,  we add three fictional players  using addPlayer(). To add different players,  change the account indicated in the transaction parameters in the top of  the right-hand panel each time and execute  the addPlayer() function (by pressing the addPlayer() button):&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p-pMmpzQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-18.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p-pMmpzQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-18.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Now that we have three registered players, we can start interacting with  the Ctontine &lt;br&gt;&lt;br&gt;
    contract.&lt;/p&gt;
&lt;br&gt;
  &lt;h5&gt;Watching values&lt;/h5&gt;

&lt;p&gt;Remix provides us with a watch window to observe  and inspect contract variables. To use this feature, in the right panel, second  tab from the left, fill in the &lt;strong&gt;Value &lt;/strong&gt;input  with 1 and &lt;strong&gt;ether&lt;/strong&gt;:&lt;/p&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fyvW1720--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-19.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fyvW1720--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-19.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Then make the first player join the Tontine game by  pressing the join button. When it completes successfully, change the account  and call the join method with zero ether, and you’ll get the following error in  the messages output:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bFL8DSUY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-20.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bFL8DSUY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-20.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;/p&gt;


&lt;p&gt;Have you  noticed the &lt;strong&gt;send higher pension &lt;/strong&gt;message  in the output console? If you remember, this message was defined in the require  function to show us the reason behind the exception: require(msg.value &amp;gt;= 1 ether &amp;amp;&amp;amp; Tpension[msg.sender] == 0, "send higher pension");. &lt;br&gt;&lt;br&gt;&lt;br&gt;
    Press the &lt;strong&gt;Debug &lt;/strong&gt;button in the console or go to  the &lt;strong&gt;Debugger configuration &lt;/strong&gt;tab to go  through the steps! &lt;br&gt;&lt;br&gt;&lt;br&gt;
    The &lt;strong&gt;Solidity  State &lt;/strong&gt;section will show us that, unlike the first player, the second player  wasn’t added successfully, as depicted in the following diagram:&lt;br&gt;&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R5RbN8ka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-21.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R5RbN8ka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-21.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;



&lt;p&gt;In addition, when the  debugging panel loads up, you will see a blue highlight that marks the part of  the code being executed as the debugging progresses, which provides precious  assistance.&lt;/p&gt;


&lt;p&gt;Notice the existence of a warning  button under the debugging buttons.  Once pressed, it will  rethrow the exception and jump  directly to the last opcode  before the exception happened:&lt;br&gt;&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SnEVp_uk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-22.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SnEVp_uk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-22.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
  &lt;h5&gt;Setting breakpoints&lt;/h5&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
  &lt;p&gt;As you know, breakpoints are the most basic and  essential feature of reliable debugging. They represent a handy tool to help  you examine in detail the execution of a specific section of code. As in other  popular IDEs, in Remix breakpoints can be added and removed by clicking on the  left margin of a line of code:&lt;br&gt;&lt;br&gt;&lt;br&gt;
    &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4lFt1Qf7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-23.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4lFt1Qf7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-23.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;



&lt;p&gt;For example, let’s define two  debugging breakpoints. Set the first at the line where the player is added to  the active players array, and the second at the line where the current  timestamp is recorded.&lt;br&gt;
  Now, make the  second player join the game properly with one ether, then debug the  transaction. Once the debugger starts, you can jump directly to your fixed  breakpoints using the &lt;strong&gt;Jump to previous breakpoint&lt;/strong&gt;, &lt;strong&gt;Jump to next breakpoint&lt;/strong&gt;, or &lt;strong&gt;Jump out debugger &lt;/strong&gt;buttons: &lt;br&gt;
  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eO2tjvAm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-24.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eO2tjvAm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://coding-bootcamps.com/img/external/16/debugging-with-truffle-and-ethereum-remix-24.gif" alt="Ethereum blockchian debugging with Truffle"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;At the breakpoint, Remix's debugger suspends your  running code so you can take a look at the values of contract's states and  explore the memory or storage at the current execution level.&lt;/p&gt;

&lt;p&gt;For the sake of brevity, breakpoints will be the  last debugging feature we cover. You can refer to Remix's documentation  (https://remix.readthedocs.io/en/latest/tutorial_debug.html) for more information  about the debugger's advanced features.&lt;/p&gt;

&lt;p&gt;This has been a long discussion on writing,  testing, and debugging our contracts. With that in place, we can safely shift to the frontend and start building the UI  components in our next recipe. &lt;/p&gt;

&lt;p&gt;This recipe is written in  collaboration with Brian Wu who is a senior blockchain instructor at &lt;a href="https://coding-bootcamps.com/"&gt;Coding Bootcamps&lt;/a&gt; school in Washington  DC.&lt;/p&gt;



</description>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>solidity</category>
      <category>truffle</category>
    </item>
    <item>
      <title>Deployment Environments for Managing Ethereum Smart Contracts</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Fri, 12 Jul 2019 18:23:51 +0000</pubDate>
      <link>https://forem.com/weg2g/deployment-environments-for-managing-ethereum-smart-contracts-16ha</link>
      <guid>https://forem.com/weg2g/deployment-environments-for-managing-ethereum-smart-contracts-16ha</guid>
      <description>&lt;p&gt;Ethereum is a general-purpose blockchain that is  more suited to describing business logic, through advanced scripts, also known  as smart contracts. Ethereum was designed with a broader vision, as a  decentralized or world computer that attempts to marry the power of the  blockchain, as a trust machine, with a Turing-complete contract engine.  Although Ethereum borrows many ideas that were initially introduced by bitcoin,  there are many divergences between the two.&lt;br&gt;
The Ethereum virtual machine and smart contracts  are key elements of Ethereum, and constitute its main attraction. In Ethereum,  smart contracts represent a piece of code written in a high-level language  (Solidity, LLL, Viper) and stored as bytecode in the blockchain, in order to  run reliably in a stack-based virtual machine (Ethereum Virtual Machine), in  each node, once invoked. The interactions with smart contract functions happen  through transactions on the blockchain network, with their payloads being  executed in the Ethereum virtual machine, and the shared blockchain state being  updated accordingly.&lt;/p&gt;
&lt;p&gt;For  those who are not familiar with blockchain technology reading &lt;a href="https://myhsts.org/tutorial-history-and-evolution-of-blockchain-technology-from-bitcoin.php" rel="noopener noreferrer"&gt;History  and Evolution of Blockchain Technology from Bitcoin&lt;/a&gt; article is strongly recommended. Also,  if you wish to learn and practice Hyperledger blockchain development, visit &lt;a href="https://myhsts.org/tutorial-comprehensive-blockchain-hyperledger-developer-guide-for-all-professional-programmers.php" rel="noopener noreferrer"&gt;Comprehensive  Hyperledger Training Tutorials&lt;/a&gt; page to get the outline of our  Hyperledger tutorial articles. &lt;br&gt;
  We  have written two sets of tutorials to explore Ethereum and Solidity programming  in depth. First set covers the following nine recipes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-about-ethereum-blockchain-development-with-dapps-and-ethereum-vm.php" rel="noopener noreferrer"&gt;Introduction to Ethereum Blockchain  Development with DApps and Ethereum VM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-auction-dapp-with-ethereum-and-solidity-programming-language.php" rel="noopener noreferrer"&gt;Building Auction DApp With Ethereum and  Solidity Programming Language&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-blockchain-applications-through-remix-ide.php" rel="noopener noreferrer"&gt;Working with Ethereum Blockchain  Applications through Remix IDE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-bidding-form-in-web3js-for-ethereum-auction-dapp.php" rel="noopener noreferrer"&gt;Building Bidding Form in Web3js for  Ethereum Auction DApp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/working-with-web3js-api-and-json-to-build-ethereum-blockchain-applications/" rel="noopener noreferrer"&gt;Working with web3js API and JSON to  Build Ethereum Blockchain Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Deployment  Environments for Managing Ethereum Smart Contracts&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-private-network-with-golang-with-geth.php" rel="noopener noreferrer"&gt;Work with Ethereum Private Network with  Golang with Geth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-compile-and-deploy-ethereum-contracts-using-solidity-compiler.php" rel="noopener noreferrer"&gt;Compiling and Deploying Ethereum  Contracts Using Solidity Compiler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-ethereum-auction-dapp-with-some-solidity-tips.php" rel="noopener noreferrer"&gt;Running Ethereum Auction DApp and  Solidity Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In  short, you learn about how to set up and configure Ethereum and develop  blockchain applications using Solidity programming language. We explore its key  components, including smart contracts and Web3.JS API via an Auction  Decentralized Application (DApp) step-by-step. &lt;br&gt;
  In  second set, we will discuss more advance topics in Ethereum blockchain  development and solidity while building a Tontine DApp game step-by-step.  Specifically, we cover Truffle and Drizzle. For instance, we show you how a  tool such as Truffle can be an assistant in building, testing, debugging, and  deploying DApps. In summary, we are going to cover four main topics: &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Exploring the Truffle suite&lt;/li&gt;
  &lt;li&gt;Learning Solidity's advanced features&lt;/li&gt;
  &lt;li&gt;Contract testing and debugging &lt;/li&gt;
  &lt;li&gt;Building a user interface using Drizzle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The 2nd  set consists of 8 recipes as follows:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-install-truffle-and-setup-ganache-for-compiling-ethereum-smart-contracts-for-tontine-dapp-game.php" rel="noopener noreferrer"&gt;Install Truffle and Setup Ganache for  Compiling Ethereum Smart Contracts for Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-tontine-ethereum-dapp-game-contract.php" rel="noopener noreferrer"&gt;Run Tontine Ethereum DApp Game Contract&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-design-tontine-ethereum-dapp-game-interfaces.php" rel="noopener noreferrer"&gt;Design Tontine Ethereum DApp Game  Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-about-blockchain-contract-interactions-between-ethereum-and-solidity-via-tontine-dapp-game.php" rel="noopener noreferrer"&gt;Contract Interactions between Ethereum  and Solidity via Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/work-with-ethereum-solidity-and-truffle-unit-testing-in-tontine-dapp-game/" rel="noopener noreferrer"&gt;Work with Truffle Unit Testing in  Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://dev.to/weg2g/debugging-with-truffle-and-ethereum-remix-in-tontine-dapp-game-20mi"&gt;Debugging  with Truffle and Ethereum Remix in Tontine DApp Game&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-frontend-blockchain-application-for-Ethereum-dapp-game-with-drizzle.php" rel="noopener noreferrer"&gt;Building Frontend Application for  Tontine DApp Game with Drizzle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-run-and-play-tontine-ethereum-dapp-game.php" rel="noopener noreferrer"&gt;Running and Playing Tontine Ethereum  DApp Game&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;IMPORTANT: Understanding and completing the first set of recipes are  required prior to working on second set of recipes. &lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Ethereum, we have multiple ways to deploy a  smart contract without spending real ether. In this recipe, we will present how  to set up and deploy your contract in the following testing environments:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Ganache&lt;/li&gt;
  &lt;li&gt;Remix Testnet&lt;/li&gt;
  &lt;li&gt;Private  network&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Option 1 – Ganache&lt;/h3&gt;
&lt;p&gt;If you're looking for a testing blockchain with a graphical
  interface, Ganache (previously TestRpc) is for you.  It's an in-memory blockchain (think of it as a blockchain simulator) that runs locally.&lt;/p&gt;
&lt;p&gt;Download and install it from the official Ganache  repository (https://github.com/trufflesuite/ganache/releases) for the appropriate version  for your OS. &lt;/p&gt;
&lt;p&gt;&lt;br&gt;
  When you run Ganache, you will get a graphical  screen showing some details about the server, the blocks created, transactions,  and a list of created accounts, each loaded with 100 ether:&lt;br&gt;
  &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-1.gif" alt="Ethereum smart contracts"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;To interact with Ganache, you can use Remix, but  this time, you have to specify a new web3 provider with  Ganache's IP and RPC port;  for example, http://localhost:7545  (if you have connection troubles, try to use Remix over HTTP, not HTTPS):&lt;br&gt;
  &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-2.gif" alt="Ethereum smart contracts"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;




&lt;p&gt;Once Remix is  connected to Ganache, deploy your smart contract as you did earlier and start  bidding through Remix. In Ganache's interface, you'll be able to visualize the  transactions and the created blocks:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-3.gif" alt="Ethereum smart contracts"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;If you think Ganache is enough for you, you can  stop here and jump directly to the Running the auction DApp section, in order  to run the auction DApp using Ganache. However, if you're interested in  learning about other possible deployment environments so you can choose  the suitable one for you, continue reading.&lt;/p&gt;


&lt;h3&gt;Option 2 – Testnet&lt;/h3&gt;
&lt;br&gt;
  &lt;p&gt;Similar to bitcoin, Ethereum's Testnet is a public  network dedicated to testing developers' contracts online without using real  ether. You can join this network without the need to run a full node, by using  a plugin called MetaMask on your browser. Let's see how it's possible.&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;


&lt;h4&gt;Connecting MetaMask to  Testnet&lt;/h4&gt;
&lt;br&gt;
  &lt;p&gt;MetaMask is a browser plugin that allows your  normal browser to behave as a web3 browser, to interact with DApps, and to send  transactions without running an Ethereum node. MetaMask achieves this by  injecting the web3js API into every web page's JavaScript context.&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;The necessary instructions for installing and  setting up MetaMask are well documented on their official website, at: &lt;a href="https://metamask.io/" rel="noopener noreferrer"&gt;https://metamask.io/&lt;/a&gt;. After the process of wallet creation, switch to the Ropsten test network in MetaMask's settings by clicking on  the network selector located on the upper left corner. Once you're connected to Ropsten, you'll need to get some  free worthless ether by choosing to buy some coins as shown in the following screenshot:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-4.gif" alt="Ethereum smart contracts"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;MetaMask can be connected to any RPC provider locally  (Ganache, Geth) or online (testnet, Mainnet). For a detailed  step-by-step guide to using MetaMask, I point you to the official documentation available at &lt;a href="https://github.com/MetaMask/faq/blob/master/USERS.md" rel="noopener noreferrer"&gt;https://github.com/MetaMask/faq/blob/master/USERS.md&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;All set; now, go back to your Remix browser (you  may need to refresh it) and select (in Remix) injected web3 as the environment  option, in order to deploy your contract directly online. MetaMask will  initiate the deployment transaction and give you back the contract address:&lt;br&gt;&lt;br&gt;
    &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-5.gif" alt="Ethereum smart contracts"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;

&lt;p&gt;MetaMask provides an  Ethereum Etherscan link for each transaction, in order to visualize, among  other details, the transaction status and gas cost:&lt;br&gt;
  &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F15%2Fethereum-smart-contract-6.gif" alt="Ethereum smart contracts"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;The contract is easily deployed in the testnet.&lt;/p&gt;

&lt;p&gt;Alternatively, you can connect Remix to the testnet  by setting up a light node connected to the testnet network as explained in the  next section. To test your auction web page using MetaMask, you have to add the  following code snippet to the beginning of your auction.js file to detect MetaMask's injected web3 instance:&lt;br&gt;
  if  (typeof web3 !== 'undefined') { App.web3Provider = web3.currentProvider; web3 =  new Web3(web3.currentProvider);&lt;br&gt;
  } else {&lt;br&gt;
  // change to your RPC  provider IP and Port App.web3Provider = new&lt;br&gt;
  web3.providers.HttpProvider('http://127.0.0.1:7545');  web3 = new Web3(App.web3Provider);&lt;br&gt;
  } &lt;/p&gt;

&lt;p&gt;Instead using  only web3.setProvider(new web3.providers.HttpProvider("http://127.0.0.1:8545"));  as we did earlier in section &lt;em&gt;talking to the blockchain.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The testnet network  is very helpful as it gives you an accurate idea of the delay processing and  cost of your transactions. However, the implied delay time and limited ether  won't be helpful for developers who regularly change their DApp's code, hence  the following third option or Ganache is more suitable as a starting  environment. You can then you move to this testnet option before going into production on the Mainnet.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;Option 3 – private network&lt;/h3&gt;

&lt;p&gt;Despite the ease of using the previous  environment, which abstracts away all the details, it is still good to know how  things work at a granular level. Besides, you might face the need to deploy  private Ethereum blockchains for private entities to use in production, or  during the software development process.&lt;/p&gt;

&lt;p&gt;Let's set up our private Ethereum network (a kind  of localhost), composed of two running nodes on  the same machine which is covered in our next recipe. &lt;/p&gt;

&lt;p&gt;
This recipe is written in  collaboration with Brian Wu who is a senior Hyperledger instructor at &lt;a href="https://coding-bootcamps.com/" rel="noopener noreferrer"&gt;Coding Bootcamps&lt;/a&gt; school in Washington  DC.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>smartcontracts</category>
      <category>solidity</category>
    </item>
    <item>
      <title>Definitive Guide for Learning Blockchain Hyperledger Development from Beginner to Advance Level</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Thu, 11 Jul 2019 14:55:13 +0000</pubDate>
      <link>https://forem.com/weg2g/definitive-guide-for-learning-blockchain-hyperledger-development-from-beginner-to-advance-level-172o</link>
      <guid>https://forem.com/weg2g/definitive-guide-for-learning-blockchain-hyperledger-development-from-beginner-to-advance-level-172o</guid>
      <description>&lt;p&gt;This article is only focused on building a blockchain  application using one of Hyperledger projects. I briefly survey each project  followed by its hands-on recipes. Also, if you wish to learn and practice Ethereum  blockchain development, visit &lt;a href="https://myhsts.org/tutorial-comprehensive-blockchain-ethereum-and-solidity-developer-guide-for-all-professional-programmers.php" rel="noopener noreferrer"&gt;Comprehensive  Ethereum Training Tutorials&lt;/a&gt; page to get the outline of our Ethereum  tutorial articles. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Good knowledge of blockchain concepts, JavaScript and Python as well as  basic skills in Linux OS are required in order to complete tutorials listed on  this article.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://learn.coding-bootcamps.com/blog/202224/why-build-blockchain-applications-with-hyperledger-fabric" rel="noopener noreferrer"&gt;Here&lt;/a&gt; is a good article on why choosing Hyperledger Fabric over other blockchain development platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview of Hyperledger Project and Family&lt;/strong&gt;&lt;br&gt;
  Hyperledger project is  made of many frameworks and tools.&lt;br&gt;
  &lt;strong&gt;Hyperledger Project Frameworks&lt;/strong&gt; &lt;br&gt;
  The frameworks under  Hyperledger project aim to provide platforms to build a variety of distributed  ledgers and their components. They are as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Hyperledger Fabric&lt;/strong&gt;: Fabric  is the most popular Hyperledger framework. Smart&lt;strong&gt; &lt;/strong&gt;contracts (also known as &lt;strong&gt;chaincode&lt;/strong&gt;) are  written in Golang and JavaScript, and run in Docker containers. Fabric is known  for its extensibility and allows enterprises to build distributed ledger  networks on top of an established and successful architecture.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Hyperledger Sawtooth&lt;/strong&gt;:  Sawtooth is the second project to reach 1.0 release&lt;strong&gt; &lt;/strong&gt;maturity. Sawtooth-core is written in Python, while Sawtooth Raft  and Sawtooth Sabre are written in Rust. It also has JavaScript and Golang  components. Sawtooth supports both permissioned and permissionless deployments.  It supports the EVM through a collaboration with the Hyperledger Burrow.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Hyperledger Burrow&lt;/strong&gt;: Burrow  is the first permissioned ledger that supports&lt;strong&gt; &lt;/strong&gt;EVM. It  is written in Go and heavily focuses on being a deterministic Smart Contract  engine.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Hyperledger Indy&lt;/strong&gt;: Indy is  built explicitly for decentralized identity&lt;strong&gt; &lt;/strong&gt;management.  The server portion, Indy node, is built in Python, while the Indy SDK is  written in Rust. It offers tools and reusable components to manage digital  identities on blockchains or other distributed ledgers.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Hyperledger Iroha&lt;/strong&gt;: Iroha  is designed to target the creation and management of&lt;strong&gt; &lt;/strong&gt;complex digital assets and identities. It is written in C++ and is  end user friendly. Iroha has a powerful role-based model for access control and  supports complex analytics.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below graph succinctly  depicts Hyperledger frameworks and tools. &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F11%2Fhyperledger-project-and-tools-overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcoding-bootcamps.com%2Fimg%2Fexternal%2F11%2Fhyperledger-project-and-tools-overview.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For learning more about  Hyperledger project tools and Hyperledger family the following articles  are strongly recommended. &lt;a href="https://weg2g.com/application/touchstonewords/article-intro-to-hyperledger-family-and-hyperledger-blockchain-ecosystem.php" rel="noopener noreferrer"&gt;Intro  to Hyperledger Family and Hyperledger Blockchain Ecosystem&lt;/a&gt; and &lt;a href="https://weg2g.com/application/touchstonewords/article-overview-of-hyperledger-design-philosophy-and-framework-architecture.php" rel="noopener noreferrer"&gt;Hyperledger  Design Philosophy and Framework Architecture&lt;/a&gt; .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I- Hyperledger Fabric Project and Development&lt;/strong&gt;&lt;br&gt;
  It is out of question that  Hyperledger Fabric is currently the most popular platform for blockchain  development. Hyperledger Fabric is an open source enterprise-grade platform  that leverages a highly-modular and configurable architecture. Hyperledger  Fabric is optimized for a broad range of industry use cases, including the  finance, banking, healthcare, insurance, and public sectors, as well as supply  chains and digital asset management. Read below article to learn about  Hyperledger Fabric architecture and design:&lt;br&gt;
  &lt;a href="https://weg2g.com/application/touchstonewords/article-the-survey-of-hyperledger-fabric-architecture-and-components-for-blockchain-developers.php" rel="noopener noreferrer"&gt;https://weg2g.com/application/touchstonewords/article-the-survey-of-hyperledger-fabric-architecture-and-components-for-blockchain-developers.php&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;
  We  have written two sets of tutorials to explore Hyperledger Fabric in depth.  First set covers the following six recipes:&lt;br&gt;
  It starts with &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-fabric-on-amazon-web-services.php" rel="noopener noreferrer"&gt;installing  Hyperledger Fabric on an AWS EC2 virtual machine&lt;/a&gt;,  &lt;a href="https://developer.ibm.com/recipes/tutorials/building-hyperledger-fabric-network-for-blockchain-applications/" rel="noopener noreferrer"&gt;setting  up the first Hyperledger Fabric network&lt;/a&gt; and &lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-fabric-cli-to-setup-network-and-manage-chaincode.php" rel="noopener noreferrer"&gt;working  with Hyperledger Fabric Command Line Interface or CLI&lt;/a&gt;. We learn the  following: &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Generating the crypto/certificate  using cryptogen&lt;/li&gt;
  &lt;li&gt;Generating the configuration  transaction using configtxgen&lt;/li&gt;
  &lt;li&gt;Bring up the nodes based on what  is defined in the docker-compose file&lt;/li&gt;
  &lt;li&gt;Using the CLI to set up the first  network&lt;/li&gt;
  &lt;li&gt;Using  the CLI to install and instantiate the chaincode &lt;/li&gt;
  &lt;li&gt;Using  the CLI to invoke and query the chaincode&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We move on to show you how  to &lt;a href="https://myhsts.org/tutorial-learn-how-to-add-organization-to-channel-in-hyperledger-fabric.php" rel="noopener noreferrer"&gt;Add  New Network to a Channel&lt;/a&gt;, &lt;a href="https://developer.ibm.com/recipes/tutorials/use-couchdb-as-a-state-database-for-hyperledger-fabric/" rel="noopener noreferrer"&gt;Use  CouchDB as a State Database for Hyperledger Fabric&lt;/a&gt;, and &lt;a href="https://myhsts.org/tutorial-learn-how-to-write-first-blockchain-application-in-hyperledger-fabric.php" rel="noopener noreferrer"&gt;Create  a Smart Contract and then Deploy it into the Blockchain&lt;/a&gt;.&lt;br&gt;
  In  short, in first 6 recipes, we learn about how to set up and configure  Hyperledger Fabric. We explore its key components, including channels, &lt;strong&gt;Membership Service Providers&lt;/strong&gt; (&lt;strong&gt;MSPs&lt;/strong&gt;), the ordering service, and Fabric &lt;strong&gt;Certificate Authority&lt;/strong&gt; (&lt;strong&gt;CA&lt;/strong&gt;). &lt;br&gt;
  The  second set, we will show you how to build a simple device asset  management DApp. It consists of 6 recipes as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-how-to-implement-hyperledger-fabric-via-inventory-asset-management-application.php" rel="noopener noreferrer"&gt;Reviewing of inventory asset  management and chaincode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/writing-hyperledger-fabric-chaincode-using-go-programming-language/" rel="noopener noreferrer"&gt;Writing chaincode as a smart  contract using Go&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-learn-how-to-compile-and-deploy-hyperledger-fabric-chaincode-and-smart-contracts.php" rel="noopener noreferrer"&gt;Compiling and deploying Fabric  chaincode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/running-and-testing-smart-contracts-for-hyperledger-fabric/" rel="noopener noreferrer"&gt;Running and testing the smart  contract&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://myhsts.org/tutorial-learn-learn-how-to-design-front-end-application-with-hyperledger-fabric-through-sdk.php" rel="noopener noreferrer"&gt;Designing front-end of an  application with Hyperledger Fabric through the SDK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developer.ibm.com/recipes/tutorials/developing-backend-application-with-hyperledger-fabric-through-sdk/" rel="noopener noreferrer"&gt;Developing  back-end of an application with Hyperledger Fabric through the SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In summary, in the second set of recipes, we are going to  build a simple device asset management DApp. We will exploit this example by  writing chaincode implemented by various programming languages and we'll also  build, test, and deploy our DApp.&lt;br&gt;
  &lt;br&gt;
  After finishing first two sets of tutorials, you can move on  to more advance topics on Hyperledger Fabric development via the following  recipes: &lt;a href="https://developer.ibm.com/recipes/tutorials/build-blockchain-applications-with-hyperledger-fabric-and-composer-on-ibm-cloud/" rel="noopener noreferrer"&gt;Build  Blockchain Applications with Hyperledger Fabric and Composer on IBM Cloud&lt;/a&gt;, &lt;a href="https://blockchain.dcwebmakers.com/build-blockchain-letter-of-credit-using-hyperledger-fabric-and-composer.html" rel="noopener noreferrer"&gt;Building A Blockchain for     Letter of Credit Using Hyperledger  Fabric and Composer&lt;/a&gt; and &lt;a href="https://coding-bootcamps.com/ultimate-guide-for-building-a-blockchain-supply-chain-using-hyperledger-fabric-and-composer.html" rel="noopener noreferrer"&gt;Ultimate Guide for Building A  Blockchain Supply Chain Using Hyperledger Fabric and Composer&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;II- Hyperledger Sawtooth Project and  Development&lt;/strong&gt;&lt;br&gt;
  Hyperledger Sawtooth is an enterprise blockchain platform  for building distributed ledger applications and networks. The design  philosophy targets keeping ledgers distributed and making smart  contracts safe, particularly for enterprise use. Read below article to  learn more:&lt;br&gt;
  &lt;a href="https://weg2g.com/application/touchstonewords/article-essential-hyperledger-sawtooth-features-for-enterprise-blockchain-developers.php" rel="noopener noreferrer"&gt;https://weg2g.com/application/touchstonewords/article-essential-hyperledger-sawtooth-features-for-enterprise-blockchain-developers.php&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;
  Follow below 5 steps or  tutorials for building blockchain application in Sawtooth:&lt;br&gt;
  &lt;strong&gt;1. Install &lt;/strong&gt;&lt;strong&gt;Hyperledger Sawtooth&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-and-work-with-blockchain-hyperledger-sawtooth.php" rel="noopener noreferrer"&gt;Install  and Work with Hyperledger Sawtooth&lt;/a&gt; recipe.&lt;br&gt;
  &lt;br&gt;
  &lt;strong&gt;2. Configure Sawtooth Validators and REST API&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://myhsts.org/tutorial-learn-how-to-configure-hyperledger-sawtooth-validator-and-rest-api-on-aws.php" rel="noopener noreferrer"&gt;Configuring  Hyperledger Sawtooth Validator and REST API on AWS&lt;/a&gt; recipe. &lt;br&gt;
  &lt;br&gt;
  &lt;strong&gt;3. Design a Namespace and Address for  Transaction Family and Implement Transaction Family&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://developer.ibm.com/recipes/tutorials/designing-namespace-and-address-for-hyperledger-sawtooth-transaction-family/" rel="noopener noreferrer"&gt;Designing  Namespace and Address for Hyperledger Sawtooth Transaction Family&lt;/a&gt; recipe&lt;br&gt;
  &lt;strong&gt;&lt;br&gt;
    4. Build a Transaction Processor and Grant Permission on the Sawtooth Network&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://developer.ibm.com/recipes/tutorials/building-transaction-handler-and-processor-for-hyperledger-sawtooth-with-python-sdk/" rel="noopener noreferrer"&gt;Building  Transaction Handler and Processor for Hyperledger Sawtooth with Python SDK&lt;/a&gt; recipe&lt;br&gt;
  &lt;strong&gt;&lt;br&gt;
    5. Develop Client Applications with the Sawtooth REST API and SDK&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://myhsts.org/tutorial-learn-how-to-build-transaction-processor-as-a-service-and-python-egg-for-hyperledger-sawtooth.php" rel="noopener noreferrer"&gt;Transaction Processor and Python Egg For Hyperledger Sawtooth&lt;/a&gt; recipe. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;III- Hyperledger Composer Project and  Development&lt;/strong&gt;&lt;br&gt;
  &lt;strong&gt;Hyperledger  Composer &lt;/strong&gt;is a set of  collaboration tools for business owners and developers&lt;strong&gt; &lt;/strong&gt;that make it  easy to write chaincode for Hyperledger Fabric and &lt;strong&gt;decentralized  applications&lt;/strong&gt; (&lt;strong&gt;DApps&lt;/strong&gt;). With Composer, you can quickly build POC  and deploy chaincode to the blockchain in a short amount of time. Hyperledger  Composer consists of the following toolsets:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;A modeling language called CTO&lt;/strong&gt;: A domain modeling language that defines a&lt;strong&gt; &lt;/strong&gt;business       model, concept, and function for a business network definition&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Playground&lt;/strong&gt;: Rapid configuration, deployment, and testing of a       business network&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Command-line interface (CLI)       tools&lt;/strong&gt;: The client command-line tool       is used to&lt;strong&gt; &lt;/strong&gt;integrate business network with Hyperledger Fabric&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow below tutorials  for building blockchain application using Hyperledger Composer:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt; &lt;a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-composer-business-network-modeling-and-environment-setup-part1.php" rel="noopener noreferrer"&gt;Hyperledger Composer business network and development  components&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt; &lt;a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-composer-business-network-modeling-and-environment-setup-part2.php" rel="noopener noreferrer"&gt;Setting  up the Hyperledger Composer Prerequisites &amp;amp; Development environment&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
&lt;a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-composer-business-network-modeling-and-environment-setup-part3.php" rel="noopener noreferrer"&gt;Configuring  a Hyperledger Composer business network&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After completing above  3 recipes, it’s recommended to learn the following topics: i- Implementing  models, transaction logic, access control, and query definitions, ii-  Deploying, testing, and exporting business network archives using the Composer  command-line interface and iii- Interacting with Composer through the RESTful  API as covered in the below links: &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/blockchain-hyperledger-composer-and-playground-development-components/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/blockchain-hyperledger-composer-and-playground-development-components/&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/interacting-with-hyperledger-composer-through-restful-api/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/interacting-with-hyperledger-composer-through-restful-api/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IV- Hyperledger Explorer Project and  Development&lt;/strong&gt;&lt;br&gt;
  Hyperledger Explorer is a  powerful utility that allows users to create user-friendly web-based  applications. It is a blockchain dashboard and provides the ability to view,  invoke, deploy, and query raw blockchain data and network information,  including block details, chain codes, and transactions stored in the ledger.&lt;br&gt;
  Follow below recipes to  install and configure Explorer:&lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-explorer-and-configure-it-with-fabric.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-explorer-and-configure-it-with-fabric.php&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-explorer-and-development-environment.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-build-blockchain-hyperledger-explorer-and-development-environment.php&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;
  Follow below tutorials for  building your first blockchain application using Hyperledger Explorer and  Fabric. &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/configure-hyperledger-explorer-with-fabric-to-build-blockchain-applications/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/configure-hyperledger-explorer-with-fabric-to-build-blockchain-applications/&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/building-hyperledger-explorer-for-developing-blockchain-applications/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/building-hyperledger-explorer-for-developing-blockchain-applications/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;V- Hyperledger Indy Project and Development&lt;/strong&gt;&lt;br&gt;
  Hyperledger Indy is a  distributed ledger in The Linux Foundation family which is built for  decentralized digital-identity management. Hyperledger Indy is in its  incubation stage so in this recipe we will explore the Indy Command Line  Interface or CLI to look at the concept and functions offered by Hyperledger  Indy with the current distribution.&lt;br&gt;
  To develop blockchain  applications using Hyperledger Indy, you need to run Hyperledger Indy and  explore it’s the power of its Command line Interface or CLI by creating,  opening, and listing the wallet, creating, importing, and using decentralized  identifier or DID and creating, connecting, and listing Hyperledger Indy node  pool. Follow below three tutorials to build your blockchain application using  Hyperledger Indy. &lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-indy-on-amazon-web-services.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-indy-on-amazon-web-services.php&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/manage-hyperledger-indy-wallet-and-did-through-indy-cli-and-docker/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/manage-hyperledger-indy-wallet-and-did-through-indy-cli-and-docker/&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-indy-command-line-interface.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-indy-command-line-interface.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VI- Hyperledger Iroha Project and Development&lt;/strong&gt;&lt;br&gt;
  Hyperledger Iroha is a  general-purpose permissioned blockchain system hosted by &lt;strong&gt;The  Linux Foundation&lt;/strong&gt;. It was  contributed by Soramitsu, Hitachi, NTT DATA, and Colu.Hyperledger Iroha is  written in C++ and incorporates the BFT consensus algorithm, named &lt;strong&gt;Yet  Another Consensus &lt;/strong&gt;(&lt;strong&gt;YAC&lt;/strong&gt;). Hyperledger Iroha consists of simple  deployment and fast&lt;strong&gt; &lt;/strong&gt;development. It can be used in applications that manage digital assets,  identity, interbank payment, and so on. Follow below link to install Iroha on  Amazon Web Services or AWS:&lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-iroha-on-amazon-web-services.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-iroha-on-amazon-web-services.php&lt;/a&gt;&lt;br&gt;
  For the next step, follow  below two tutorials for building your blockchain application using Iroha:&lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-iroha-cli-to-create-cryptocurrency.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-work-with-hyperledger-iroha-cli-to-create-cryptocurrency.php&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/configuring-hyperledger-iroha-peer-node-and-network/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/configuring-hyperledger-iroha-peer-node-and-network/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VII- Hyperledger Burrow Project and Development&lt;/strong&gt;&lt;br&gt;
  Hyperledger Burrow is one  of the Hyperledger projects hosted by The Linux Foundation. Hyperledger Burrow  was originally contributed by Monax and co-sponsored by Intel.  Hyperledger Burrow provides a modular blockchain client with a permissioned  smart contract interpreter partially developed to the specification of the  Ethereum Virtual Machine (EVM). Follow the below recipe to install Burrow on  AWS:&lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-burrow-on-amazon-web-services.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-install-blockchain-hyperledger-burrow-on-amazon-web-services.php&lt;/a&gt;&lt;br&gt;
  For next steps, follow below tutorials to build your  blockchain application using Hyperledger Burrow: &lt;br&gt;
  &lt;a href="https://developer.ibm.com/recipes/tutorials/deploying-and-calling-ethereum-smart-contracts-on-hyperledger-burrow/" rel="noopener noreferrer"&gt;https://developer.ibm.com/recipes/tutorials/deploying-and-calling-ethereum-smart-contracts-on-hyperledger-burrow/&lt;/a&gt; &lt;br&gt;
  &lt;a href="https://myhsts.org/tutorial-learn-how-to-build-and-deploy-ethereum-smart-contracts-on-hyperledger-burrow.php" rel="noopener noreferrer"&gt;https://myhsts.org/tutorial-learn-how-to-build-and-deploy-ethereum-smart-contracts-on-hyperledger-burrow.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;
  In this article, we reviewed  blockchain Hyperleger project such as its frameworks and tools. We also cover  its 5 development frameworks- Fabric, Iroha, Burrow, Indy and Sawtooth and two  most popular tools- Composer and Explorer. To learn and master blockchain  development, it requires patience and consistent training. Also, Hyperledger  development libraries and resources are updated frequently, so it is good to  check their website and use their latest documentations. &lt;/p&gt;

&lt;p&gt;As of this  writing, Hyperledger Foundation offers the following two Hyperledger  certifications: &lt;a href="https://www.hyperledger.org/resources/training/hyperledger-fabric-certification" rel="noopener noreferrer"&gt;The Certified Hyperledger Fabric  Administrator&lt;/a&gt; (CHFA) and &lt;a href="https://www.hyperledger.org/resources/training/hyperledger-sawtooth-certification" rel="noopener noreferrer"&gt;The Certified Hyperledger Sawtooth  Administrator&lt;/a&gt; (CHSA), both of which are highly regarded in the industry. Hyperledger Foundation  is in the process of creating Hyperledger Developer certification program,  which may be released in early or middle of 2020. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About Authors&lt;/strong&gt;&lt;br&gt;
  This article  is written by Matt Zand (Founder of &lt;a href="https://myhsts.org" rel="noopener noreferrer"&gt;High School Technology Services&lt;/a&gt;, &lt;a href="https://hashflow.us" rel="noopener noreferrer"&gt;Hash Flow&lt;/a&gt;, and &lt;a href="https://coding-bootcamps.com" rel="noopener noreferrer"&gt;Coding Bootcamps&lt;/a&gt;) in collaboration with Brian Wu who is an advisor at &lt;a href="https://blockchain.dcwebmakers.com/" rel="noopener noreferrer"&gt;DC Web Makers&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>hyperleder</category>
      <category>hyperledgerfabric</category>
      <category>node</category>
    </item>
    <item>
      <title>Essential Developer Guide for Building Blockchain Applications Using Hyperledger Sawtooth</title>
      <dc:creator>Matt</dc:creator>
      <pubDate>Mon, 08 Jul 2019 14:02:30 +0000</pubDate>
      <link>https://forem.com/weg2g/essential-developer-guide-for-building-blockchain-applications-using-hyperledger-sawtooth-3hm1</link>
      <guid>https://forem.com/weg2g/essential-developer-guide-for-building-blockchain-applications-using-hyperledger-sawtooth-3hm1</guid>
      <description>&lt;p&gt;Hyperledger Sawtooth is an enterprise blockchain platform  for building distributed ledger applications and networks. The design  philosophy targets keeping ledgers distributed and making smart  contracts safe, particularly for enterprise use.&lt;br&gt;
  &lt;br&gt;
  Sawtooth simplifies blockchain application development by separating the core  system from the application domain. Application developers can specify the  business rules appropriate for their application, using the language of their  choice, without needing to know the underlying design of the core system.&lt;br&gt;
  &lt;br&gt;
  Sawtooth is also highly modular. This modularity enables enterprises and  consortia to make policy decisions that they are best equipped to make.  Sawtooth’s core design allows applications to choose the transaction rules,  permissioning, and consensus algorithms that support their unique business  needs.&lt;br&gt;
  &lt;br&gt;
  For those who are not familiar with Hyperledger  project &lt;a href="https://weg2g.com/application/touchstonewords/article-intro-to-hyperledger-family-and-hyperledger-blockchain-ecosystem.php"&gt;Intro  to Hyperledger Family and Hyperledger Blockchain Ecosystem&lt;/a&gt; and &lt;a href="https://weg2g.com/application/touchstonewords/article-overview-of-hyperledger-design-philosophy-and-framework-architecture.php"&gt;Hyperledger  Design Philosophy and Framework Architecture&lt;/a&gt; articles are strongly recommended.&lt;/p&gt;

&lt;p&gt;The  features offered by Hyperledger Sawtooth are the following:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;A truly distributed DLT&lt;/strong&gt;:  The Hyperledger Sawtooth blockchain network is&lt;strong&gt; &lt;/strong&gt;made up of validator nodes. The ledger is shared between all  validator nodes and each node has the same information. They participate in a  consensus to manage the network.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Proof of Elapsed Time (PoET) consensus and support for  large-scale networks&lt;/strong&gt;:&lt;strong&gt; &lt;/strong&gt;Hyperledger Sawtooth includes a novel consensus algorithm, PoET.  PoET is a &lt;strong&gt;Byzantine Fault-tolerance &lt;/strong&gt;(&lt;strong&gt;BFT&lt;/strong&gt;) consensus algorithm that supports  large-scale&lt;strong&gt; &lt;/strong&gt;networks with minimal  computing and much more efficient resource consumption compared to proof of  work algorithms. PoET was invented by Intel and utilizes the special CPU  instruction set called &lt;strong&gt;Software Guard  Extensions&lt;/strong&gt; (&lt;strong&gt;SGX&lt;/strong&gt;), to achieve the  scaling benefits of the Nakamoto-style consensus algorithms. Each node waits  for a random period of time and the first node to finish is the leader and  commits the next block.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Fast transaction performance&lt;/strong&gt;: Hyperledger Sawtooth keeps the latest version of&lt;strong&gt; &lt;/strong&gt;assets in the global state and  transactions in the block chain on each network node. This means that you can  look up the state quickly to carry out CRUD actions, which provides fast  transaction processing. Sawtooth requires transactions to be processed in  batches and supports parallel scheduling of transactions. Parallel transaction  execution not only accelerates the execution of transactions but also correctly  handles the double spending problem known as &lt;strong&gt;Unspent Transaction Output &lt;/strong&gt;(&lt;strong&gt;UTXO&lt;/strong&gt;).&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Support for a broad variety of  languages&lt;/strong&gt;: Sawtooth  supports the&lt;strong&gt; &lt;/strong&gt;implementation of  transaction families (safe and smart contracts) in a wide variety of  programming languages, including Python, Go, Rust, Java, and JavaScript.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;The ability to configure private,  public, and consortium blockchain networks&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Sawtooth  can be configured with different permissions to build private, consortium, or  public networks by specifying which nodes are allowed to join the validator  network and participate in the consensus, and which clients are allowed to  submit batches and transactions. &lt;/p&gt;

&lt;p&gt;In this article, I give  step-by-step guide for building blockchain applications using Hyperledger  Sawtooth. Good knowledge of blockchain concepts, JavaScript and Python as well  as basic skills in Linux OS is required in order to complete tutorials listed  on this article. &lt;br&gt;
  &lt;br&gt;
  In short, we follow below  steps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Install Hyperledger Sawtooth on a cloud service  like AWS&lt;/li&gt;
  &lt;li&gt;Configure Sawtooth validators and REST API&lt;/li&gt;
  &lt;li&gt;Design a namespace and address for a transaction  family&lt;/li&gt;
  &lt;li&gt; Implement a transaction family&lt;/li&gt;
  &lt;li&gt;Build a transaction processor&lt;/li&gt;
  &lt;li&gt; Grant  permission on the Sawtooth network &lt;/li&gt;
  &lt;li&gt;Develop client applications with the Sawtooth  REST API and SDK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To help blockchain  developers to find their feet in Hyperledger Sawtooth development, I’ve written  a series of hands-on tutorials to cover each topic in depth as follows. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install &lt;/strong&gt;&lt;strong&gt;Hyperledger Sawtooth&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://myhsts.org/tutorial-learn-how-to-install-and-work-with-blockchain-hyperledger-sawtooth.php"&gt;Install  and Work with Hyperledger Sawtooth&lt;/a&gt; recipe.&lt;br&gt;
  &lt;br&gt;
  &lt;strong&gt;Configure Sawtooth Validators and REST API&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://myhsts.org/tutorial-learn-how-to-configure-hyperledger-sawtooth-validator-and-rest-api-on-aws.php"&gt;Configuring  Hyperledger Sawtooth Validator and REST API on AWS&lt;/a&gt; recipe. &lt;br&gt;
  &lt;br&gt;
  &lt;strong&gt;Design a Namespace and Address for Transaction  Family and Implement Transaction Family&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://developer.ibm.com/recipes/tutorials/designing-namespace-and-address-for-hyperledger-sawtooth-transaction-family/"&gt;Designing  Namespace and Address for Hyperledger Sawtooth Transaction Family&lt;/a&gt; recipe&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build a Transaction Processor and Grant  Permission on the Sawtooth Network&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://developer.ibm.com/recipes/tutorials/building-transaction-handler-and-processor-for-hyperledger-sawtooth-with-python-sdk/"&gt;Building  Transaction Handler and Processor for Hyperledger Sawtooth with Python SDK&lt;/a&gt; recipe&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Develop Client Applications with the Sawtooth  REST API and SDK&lt;/strong&gt;&lt;br&gt;
  Follow &lt;a href="https://myhsts.org/tutorial-learn-how-to-build-transaction-processor-as-a-service-and-python-egg-for-hyperledger-sawtooth.php"&gt;Transaction Processor and Python Egg For Hyperledger Sawtooth&lt;/a&gt; recipe. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About Authors&lt;/strong&gt;&lt;br&gt;
  This article  is written by Matt Zand (Founder of &lt;a href="https://myhsts.org"&gt;High School Technology Services&lt;/a&gt;) in collaboration with Brian Wu who  is a senior blockchain instructor at &lt;a href="https://coding-bootcamps.com/"&gt;Coding Bootcamps&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>hyperledger</category>
      <category>sawtooth</category>
    </item>
  </channel>
</rss>
