<?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: Ileolami</title>
    <description>The latest articles on Forem by Ileolami (@ileolami).</description>
    <link>https://forem.com/ileolami</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%2F1116969%2F68e029ec-d560-4e8e-8601-c214c172d68a.jpeg</url>
      <title>Forem: Ileolami</title>
      <link>https://forem.com/ileolami</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ileolami"/>
    <language>en</language>
    <item>
      <title>Eight Things You need to know Before Building On Stellar Blockchain</title>
      <dc:creator>Ileolami</dc:creator>
      <pubDate>Thu, 15 Aug 2024 12:18:18 +0000</pubDate>
      <link>https://forem.com/ileolami/eight-things-you-need-to-know-before-building-on-stellar-blockchain-3487</link>
      <guid>https://forem.com/ileolami/eight-things-you-need-to-know-before-building-on-stellar-blockchain-3487</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/stellar"&gt;Build Better on Stellar: Smart Contract Challenge &lt;/a&gt;: Create a Tutorial&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Tutorial
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/ileolami/eight-things-you-need-to-know-before-building-on-stellar-blockchain-434p"&gt;Eight You Need to Know Before Building On Stellar Blockcahin&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Created
&lt;/h2&gt;

&lt;p&gt;I created this knowledge-based guide on the Stellar blockchain specifically for developers. This technical content uses real-life examples and analogy to explain the complexity of Core concepts and Components of Stellar Blockchain. &lt;/p&gt;

&lt;p&gt;I also integrated Visual illustrations to explain them to create a mental picture of what these components and concepts entail without cracking their brain to understand. &lt;/p&gt;

&lt;p&gt;The article will help developers who are finding it difficult to get project ideas as each section comes with project ideas and how Stellar components can be used in building them. &lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Research Procedure
&lt;/h3&gt;

&lt;p&gt;I started by studying the developer documentation using the doc site and primary site.&lt;/p&gt;

&lt;p&gt;I also had a 40 mins interview section with a Mentor who teaches developers in the stellar community under West Africa community.&lt;/p&gt;

&lt;h3&gt;
  
  
  Motivation
&lt;/h3&gt;

&lt;p&gt;The motivation behind this is the money and the travel support to Meridian. Aside from that, I noticed one common problem among developers is that we find it difficult to study each blockchain before we start building. &lt;/p&gt;

&lt;p&gt;For example, I was working with a smart contract developer who didn't know the cost rate of deploying a smart contract to the chain. She had already paid a lot of gas fees before she realized they were something she should have implemented in her codebase before deploying to reduce the gas fee.&lt;/p&gt;

&lt;p&gt;One thing I love that gives me the drive is the fact that my long-awaited solution is been provided, I won't say it here. You will read about it in the article 😉. &lt;/p&gt;

&lt;p&gt;What I hope to do next is Learn how to build on Stellar blockchain using Rust as I only know Frontend using React.js. &lt;/p&gt;

&lt;p&gt;I hope you find my article helpful and if you do let me know in the comment section. &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>stellarchallenge</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>Eight Things You Need To Know Before Building on Stellar Blockchain</title>
      <dc:creator>Ileolami</dc:creator>
      <pubDate>Thu, 15 Aug 2024 11:49:18 +0000</pubDate>
      <link>https://forem.com/ileolami/eight-things-you-need-to-know-before-building-on-stellar-blockchain-434p</link>
      <guid>https://forem.com/ileolami/eight-things-you-need-to-know-before-building-on-stellar-blockchain-434p</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the&lt;/em&gt; &lt;a href="https://dev.to/challenges/stellar"&gt;&lt;em&gt;Build Better on Stellar: Smart Contract Challenge&lt;/em&gt;&lt;/a&gt;&lt;em&gt;: Create a Tutorial&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overview Of Stellar Blockchain&lt;/li&gt;
&lt;li&gt;Eight Things to Know About Stellar Blockchain&lt;/li&gt;
&lt;li&gt;Stellar Network&lt;/li&gt;
&lt;li&gt;Stellar Consensus Protocol(SCP)&lt;/li&gt;
&lt;li&gt;Stellar Core&lt;/li&gt;
&lt;li&gt;Smart Contract Development&lt;/li&gt;
&lt;li&gt;Data Querying On Stellar Network&lt;/li&gt;
&lt;li&gt;Stellar SDK&lt;/li&gt;
&lt;li&gt;Anchors and Anchor Platform&lt;/li&gt;
&lt;li&gt;Operation, Transaction Process and Fee&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;li&gt;References&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"&lt;em&gt;Why do I have to transfer my crypto to a CEX account before I can get fiat and pay for something?&lt;/em&gt;" This was my thought three years ago. Even though this process doesn't take much time, I still find it inconvenient.&lt;/p&gt;

&lt;p&gt;As an entry-level blockchain frontend engineer, this problem occupied my mind like a lioness guarding her territory. I spoke to my friend about it, and he said, "Ileolami, I have thought about this problem too." We discussed how we could provide a solution, but we had limited resources and capacity.&lt;/p&gt;

&lt;p&gt;Then I attended a Stellar Developer meetup in Lagos in July. "Yes, this is it. This is what I need for my projects," I thought. I immediately called my friend, "Chuks, I found the solution to the problem we talked about three years ago." My excitement was palpable to the person sitting next to me at the meetup.&lt;/p&gt;

&lt;p&gt;Are you surprised and curious? You should be. You are reading this article because I am excited to share what &lt;a href="https://stellar.org/" rel="noopener noreferrer"&gt;Stellar Blockchain&lt;/a&gt; is and how it solves this challenge. In this article, I will share the &lt;strong&gt;EIGHT THINGS YOU NEED TO KNOW BEFORE BUILDING ON STELLAR BLOCKCHAIN&lt;/strong&gt;, along with practical examples and projects that can be built on it.&lt;/p&gt;

&lt;p&gt;&lt;a id="overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview Of Stellar Blockchain
&lt;/h2&gt;

&lt;p&gt;What if I told you there is a blockchain that allows interaction with traditional financial applications and seamless cross-border payments? Imagine a network where you can send or deposit cryptocurrency and receive its equivalent in fiat currencies, like US dollars or Nigerian Naira, and vice versa.&lt;/p&gt;

&lt;p&gt;Yes, there is one, and it is &lt;strong&gt;STELLAR.&lt;/strong&gt; Stellar is a layer-one, decentralized, open-source, public, and peer-to-peer blockchain. It allows developers to build applications, issue assets, and connect to existing traditional (web2) financial institutions. It is designed to enable creators, innovators, and developers to build projects on the network that can interoperate with each other.&lt;/p&gt;

&lt;p&gt;In simple terms, Stellar is a bridge that connects the real world and blockchain technology without any noticeable differences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx32gn1w21u095qfkw3ie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx32gn1w21u095qfkw3ie.png" title="stellar" alt="Stellar Bridge illustration" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Stellar network offers fast, efficient, scalable, and affordable transactions. It is designed to handle thousands of transactions within 5 seconds, ensuring users experience minimal delays. Its efficiency is further highlighted by low transaction fees, making it an attractive option for both individuals and businesses.&lt;/p&gt;

&lt;p&gt;The scalability of Stellar is one of its standout features, allowing it to process up to 1,000 operations per ledger. This means that the network can handle a significant number of transactions simultaneously, ensuring that users experience smooth and uninterrupted service.&lt;/p&gt;

&lt;p&gt;Also, the affordability of transactions on the Stellar network makes it accessible to users from various economic backgrounds, promoting financial inclusion and enabling seamless cross-border payments.&lt;/p&gt;

&lt;p&gt;&lt;a id="eight"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Eight Things to Know About Stellar Blockchain
&lt;/h2&gt;

&lt;p&gt;Having explained what the Stellar blockchain is. In this section, you will learn about nine important aspects of Stellar: Network, Stellar Consensus Protocol, Stellar Core, Smart Contracts, RPC and Horizon, Stellar SDK, Anchors, Stellar Decentralized Exchange (DeX), and Transaction Process and Fees.&lt;/p&gt;

&lt;p&gt;Let's dive right in.&lt;br&gt;
&lt;a id="network"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stellar Networks
&lt;/h3&gt;

&lt;p&gt;Stellar blockchain has three networks, they are &lt;strong&gt;Mainnet(public network), Testnet(test network)&lt;/strong&gt; and &lt;strong&gt;Futurenet(dev network).&lt;/strong&gt; These three networks are created to help developers in various stages of development and testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngkkh9bquntwth7qwbjf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngkkh9bquntwth7qwbjf.png" alt="Stellar Network" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Mainnet(Public Network or Pubnet)
&lt;/h4&gt;

&lt;p&gt;This is the main Stellar network where real transactions take place, involving actual money and assets. It’s used when your application is live and interacting with real-world financial systems and requires Lumens (XLM) for transactions, covering fees, balances, and rent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For example, If you were to launch a wallet app on Stellar that people use to send and receive money, Mainnet is where these transactions would happen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It is operated by the public, meaning it's decentralized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It requires Lumens (XLM, Stellar's cryptocurrency) for various actions like covering transaction fees or maintaining account balances.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It supports up to 1,000 operations per ledger and will have specific limits for smart contract transactions(100).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Testnet(Test Network)
&lt;/h4&gt;

&lt;p&gt;This is a playground for developers to test their applications in an environment that closely mimics the Mainnet but without real money involved. It’s a safe space to experiment without financial risk.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For example, before you launch the wallet app on Mainnet, you test it first on Testnet to make sure everything works perfectly before deploying it to Mainnet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Stellar Development Foundation (SDF) runs three core validator nodes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A bot called &lt;strong&gt;Friendbot&lt;/strong&gt; gives you free fake XLM to use for testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testnet is limited to 100 operations per ledger and one smart contract transaction per ledger.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testnet data resets every four months to clear out old data and keep the network clean.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Futurenet
&lt;/h4&gt;

&lt;p&gt;This network can be called "&lt;strong&gt;Laboratory(experimental)&lt;/strong&gt;" where developers can try out cutting-edge features that haven’t yet been rolled out to Mainnet or Testnet. It’s less stable but offers a sneak peek at future updates.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For example, If Stellar is working on a new feature that your app might use, you could test it on Futurenet before it’s officially released.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Futurenet also works similarly to Testnet, handling the same number of operations and smart contract transactions per ledger. It is reset periodically and run by the SDF.&lt;/p&gt;

&lt;p&gt;It is important to note that when this reset is carried out, all the test accounts and transactions you created will be wiped out. To avoid this when testing, it's recommended to carry out &lt;a href="https://developers.stellar.org/docs/learn/fundamentals/networks#test-data-automation" rel="noopener noreferrer"&gt;&lt;strong&gt;Test data automation&lt;/strong&gt;&lt;/a&gt; that can automatically refill these networks with the necessary data after they are reset.&lt;/p&gt;

&lt;p&gt;&lt;a id="scp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stellar Consensus Protocol(SCP)
&lt;/h3&gt;

&lt;p&gt;Stellar Consensus Protocol(SCP) is based on an infrastructure called the &lt;strong&gt;FEDERATED BYZANTINE AGREEMENT(FBA)&lt;/strong&gt; using the &lt;strong&gt;Proof of Agreement(PoH)&lt;/strong&gt; consensus mechanism is different from the common ones like Proof Of Work(PoW) by Bitcoin, Proof of Stake (PoS) or Proof of History(PoH).&lt;/p&gt;

&lt;p&gt;Instead of using computational power or staked coins, SCP relies on the agreement of trusted nodes that is nodes trusting specific other nodes (called a &lt;strong&gt;quorum set&lt;/strong&gt;) to agree on transactions.&lt;/p&gt;

&lt;h4&gt;
  
  
  How Stellar Consensus Protocol(SCP) works
&lt;/h4&gt;

&lt;p&gt;To have a better understanding of how SCP works, let's use this analogy below:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Imagine participating in a quiz where the host asks each row to choose a representative to answer questions on their behalf. Your row chooses you to represent them. Every question you answer isn’t just for you; it’s for everyone in your row. With each correct answer, you feel the collective excitement build. And finally, when the quiz ends, you’ve won. But it’s not just your victory—it’s a win for your entire row.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h5&gt;
  
  
  &lt;strong&gt;SCP Components Explanation Using the Quiz Analogy&lt;/strong&gt;
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7gcz9vjyzt8f69z6jd0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7gcz9vjyzt8f69z6jd0p.png" alt="SCP component" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quorum Set&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In that quiz, each row had to choose a representative to answer questions. These chosen reps represent the "quorum set" in SCP. Just like your row trusted you to answer on their behalf, in SCP, each node in the network selects a group of other nodes (its quorum set) that it trusts to help decide which transactions should be added to the ledger.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Thresholds and Quorum Slices&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s say in the quiz, your row decided that they needed the agreement of at least two reps to finalize your answers or theirs. This is like the "threshold" in SCP, where a node requires a certain number of trusted nodes (quorum slice) e.g. two or five nodes to agree before it accepts a transaction. If two or more reps (trusted nodes) agree with you, your answer (decision) is accepted.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Federated Voting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you answered a question in the quiz, your partners also gave their answers. If enough of them agree with you, your answer is accepted. This process mirrors "federated voting" in SCP, where nodes vote on whether to accept a transaction based on the agreement within their quorum set.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Node Blocking Sets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine if two reps from different rows consistently disagreed with your answers. They could block your answers from being accepted if they were influential enough. This is similar to "node blocking sets" in SCP, where certain nodes can prevent consensus if they disagree.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Final Consensus (Winning the Quiz)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the quiz, because you answered most questions correctly and other reps agreed with your answers, your row won. This is like reaching the final consensus in SCP. When enough nodes (like the reps) agree on the same transaction, it’s confirmed and added to the ledger, similar to how your correct answers led to your row winning the quiz.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a id="core"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stellar Core
&lt;/h3&gt;

&lt;p&gt;Stellar Core is the software that powers individual nodes in the Stellar network. These nodes maintain the distributed ledger and participate in the Stellar Consensus Protocol to validate and process transactions, typically reaching consensus and updating the ledger every 5-7 seconds.&lt;/p&gt;

&lt;p&gt;For a better understanding, see Stellar Core as the "Class Captain" who coordinates the class. Each Student in the class represents a node. The Class Captains (Stellar Core nodes) ensure that all students (nodes) follow the same rules and agree on answers (transactions) every few seconds. After a quick discussion (reaching a consensus), the captains update the class board (ledger) with the latest correct answers.&lt;/p&gt;

&lt;p&gt;&lt;a id="smart"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Smart Contract Development
&lt;/h3&gt;

&lt;p&gt;Applications on the Stellar Blockchain are created using smart contracts. These are self-executing programmable codes designed to automatically enforce agreements and are trustless. These smart contracts are written in the &lt;a href="https://www.rust-lang.org/" rel="noopener noreferrer"&gt;Rust programming language&lt;/a&gt; and compiled into &lt;strong&gt;WebAssembly (Wasm)&lt;/strong&gt; for deployment.&lt;/p&gt;

&lt;p&gt;Aside from writing smart contracts in Rust, Stellar has a smart contract platform called Soroban. This means that Soroban is a designated system that provides the tools and environment on Stellar for developers to write smart contracts. This makes it possible to create decentralized applications (dApps) and complex financial services directly on the Stellar blockchain.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Stellar smart contracts use few subsets of full Rust language and must adhere to the specialized libraries.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  How Smart Contract Works
&lt;/h4&gt;

&lt;p&gt;You will understand this process using an example.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Imagine you are building an Escrow feature for your E-commerce DApp. Here is the process you will follow:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h5&gt;
  
  
  Development process
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/build/smart-contracts/overview#soroban-rust-sdk" rel="noopener noreferrer"&gt;&lt;strong&gt;Soroban Rust SDK&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, you'll use the Soroban Rust SDK to write the smart contract for your escrow feature. The SDK provides you with tools and functions specifically designed for Stellar smart contracts, making it easier to handle tasks like cryptographic hashing, signature verification, and managing on-chain data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; You code the escrow logic in Rust, ensuring that funds from a buyer are held securely until the seller fulfils their part of the transaction. This smart contract will only release the funds to the seller once the buyer confirms receiving the goods.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/build/smart-contracts/overview#host-environment" rel="noopener noreferrer"&gt;&lt;strong&gt;Host Environment&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The host environment, part of the SDK, allows you to test and debug the smart contract on your local machine before deploying it. It simulates the real blockchain environment, ensuring that your contract behaves as expected.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; You can run the escrow smart contract on your computer, simulate different scenarios (like the seller failing to deliver), and ensure the contract handles each situation correctly before it goes live.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Storage and Deployment Process
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures/contracts#wasm" rel="noopener noreferrer"&gt;&lt;strong&gt;WASM&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After writing the contract, you'll compile it into a &lt;a href="https://webassembly.org/" rel="noopener noreferrer"&gt;&lt;strong&gt;WebAssembly (WASM)&lt;/strong&gt;&lt;/a&gt; file. This file contains the executable code for your escrow feature and is what will be deployed to the Stellar network.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; The WASM file is like the final, packaged version of your escrow contract, ready to be installed on the blockchain.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures/contracts#contract-instances" rel="noopener noreferrer"&gt;&lt;strong&gt;Contract Instance&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the WASM file is deployed, you can create multiple instances of the escrow contract. Each instance operates independently but uses the same underlying code. For example, each buyer-seller pair in your E-commerce DApp might use a separate instance of the escrow contract.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; If five different buyers use your platform to buy from five different sellers, the same escrow contract can be instantiated five times—each handling a separate transaction.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://developers.stellar.org/docs/learn/fundamentals/stellar-data-structures/contracts#contract-storage" rel="noopener noreferrer"&gt;&lt;strong&gt;Contract Storage&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The contract storage is where all the data related to your escrow contract is kept on the blockchain. This includes details like the amount of funds held in escrow, the identities of the buyer and seller, and the status of the transaction using either &lt;strong&gt;temporary storage&lt;/strong&gt; for short-term data or &lt;strong&gt;persistent storage&lt;/strong&gt; for important data that must be retained over time or &lt;strong&gt;Instance storage.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt; When a buyer initiates an escrow transaction, the contract storage will keep a record of the deposited funds, waiting for the contract’s conditions to be met before releasing the funds to the seller.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a id="data"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Querying On Stellar Network
&lt;/h3&gt;

&lt;p&gt;Stellar also keep data querying in mind when building this blockchain. It provides four tools for developers to query network data, submit transactions, and interact with smart contracts without needing to understand the low-level details of Stellar Core, facilitating seamless communications between end-users, apps and Stellar Core.&lt;/p&gt;

&lt;p&gt;These four tools are:&lt;/p&gt;

&lt;h4&gt;
  
  
  Remote Procedure Call(RPC)
&lt;/h4&gt;

&lt;p&gt;The &lt;strong&gt;RPC (Remote Procedure Call)&lt;/strong&gt; service on the Stellar network provides real-time access to the &lt;strong&gt;current state&lt;/strong&gt; of the blockchain within a seven-day retention window. It includes data like account balances and smart contract states.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Current State Information:&lt;/strong&gt; Access real-time data, such as account balances and smart contract states, essential for wallets or DApps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transaction Submission:&lt;/strong&gt; Send transactions to the network and check their status. Data is retained for seven days.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability and Simplicity:&lt;/strong&gt; Lightweight and easy to scale, ideal for real-time applications needing current data without historical data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Soroban-RPC
&lt;/h5&gt;

&lt;p&gt;Soroban-RPC is a specialized version of RPC tailored for Soroban. It provides similar features but is optimized for developers working with Soroban smart contracts. Like the standard RPC, Soroban-RPC focuses on providing current state data, which is ideal for dApps that require the latest information.&lt;/p&gt;

&lt;p&gt;Soroban-RPC is designed to be easy to deploy and maintain. Developers can quickly set up an instance using a Docker image, making it accessible without needing extensive infrastructure management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some of the RPC application examples are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-Time Wallet Balances:&lt;/strong&gt; A wallet application could use RPC to fetch and display the most recent account balances, ensuring users always see the latest information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Contract Interaction:&lt;/strong&gt; A dApp built on Soroban might use Soroban-RPC to interact with smart contracts, such as querying the current state of a contract or submitting a transaction to execute a contract function.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transaction Monitoring:&lt;/strong&gt; A service that tracks transactions could use RPC to provide real-time updates on the status of transactions, such as confirming whether a payment has been processed or is still pending.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Data Indexer
&lt;/h4&gt;

&lt;p&gt;Data indexers are specialized tools designed to process and organize blockchain data, making it more accessible and easier to query for end users. They transform raw blockchain data into a readable structured format, enabling advanced analysis and more user-friendly interactions with the data.&lt;/p&gt;

&lt;p&gt;It offers features such as&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Advanced Querying:&lt;/strong&gt; Data indexers allow developers to perform complex queries and retrieve specific information from the blockchain, such as filtering transactions based on certain criteria or tracking particular assets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enhanced Analytics:&lt;/strong&gt; They provide features like statistical analysis, visualization of transaction flows, and tracking metrics related to decentralized finance (DeFi).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User-Friendly Interface:&lt;/strong&gt; By making data more accessible and easier to interpret, data indexers are a more user-friendly and cost-effective choice for users who need to interact with blockchain data beyond basic transaction lookups.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;This tool is suitable for apps like Crypto Wallet where your users can have better insights into their transaction history. Instead of just showing a list of transactions, using this data indexer to provide detailed analytics with Charts like &lt;a href="https://www.npmjs.com/package/recharts" rel="noopener noreferrer"&gt;Recharts Package&lt;/a&gt;, such as spending trends, visualization of how their assets are distributed across different accounts, or even predictive analytics to help them manage their portfolio more effectively.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Horizon
&lt;/h4&gt;

&lt;p&gt;Horizon is an HTTP API that acts as a bridge between applications and the Stellar network, making it easier for projects like wallets, decentralized exchanges, and asset issuers to interact with Stellar. It allows users to submit transactions, query account balances, and stream events related to accounts. This API simplifies the process by translating the complex, performance-oriented data of Stellar Core into a more user-friendly format.&lt;/p&gt;

&lt;p&gt;Horizon can be accessed via cURL, a browser, or Stellar SDKs. Using SDKs is recommended to reduce complexity when integrating with Stellar. While you can run your own Horizon instance for full operational control, you can also use the publicly available instances provided by the SDF for the testnet and futurenet.&lt;/p&gt;

&lt;p&gt;Horizon manages three types of data—&lt;strong&gt;current state, historical state,&lt;/strong&gt; and &lt;strong&gt;derived state&lt;/strong&gt;—in a single database. This setup allows for real-time transactional use but makes Horizon resource-intensive to operate.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's important to note that Horizon does not store smart contract data but does interact with Stellar Asset Contracts (SAC) and smart contract operations like &lt;code&gt;invokeHostFunction&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Horizon is suitable for applications like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decentralized Exchange (DEX):&lt;/strong&gt; If you're building a DEX on Stellar, Horizon allows you to access current and historical data about asset trades, manage order books, and process transactions securely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Asset Issuance:&lt;/strong&gt; For entities looking to issue new assets on the Stellar network, Horizon facilitates the creation, management, and distribution of these assets, while also tracking their movement across accounts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Hubble
&lt;/h4&gt;

&lt;p&gt;Hubble is an open-source, publicly accessible dataset that provides a comprehensive historical record of the Stellar network. Unlike Horizon, which is geared towards real-time transaction processing, Hubble is optimized for handling large-scale, analytic workloads. In a simple term, See Hubble as a "&lt;strong&gt;Lable"&lt;/strong&gt; that can be used to shove all the records from the Stellar pot(network) onto a plate.&lt;/p&gt;

&lt;p&gt;This tool is used when you want to handle complex queries that might cause performance issues or timeouts in Horizon. For example, if you need to analyze transaction patterns over several years or perform cross-chain analytics, Hubble is the right tool.&lt;/p&gt;

&lt;p&gt;Also If your project requires access to the entire history of the Stellar network, such as tracking asset movement or analyzing network growth over time, Hubble provides the necessary data without the limitations of Horizon’s storage and real-time processing.&lt;/p&gt;

&lt;p&gt;Use case includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Financial Analytics:&lt;/strong&gt; A financial analyst might use Hubble to track the historical performance of a specific asset on the Stellar network, analyzing transaction volumes, price changes, and market trends over several years.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Research and Development:&lt;/strong&gt; A blockchain researcher could use Hubble to study the adoption rates of Stellar’s features by analyzing how often certain types of transactions have been used over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Chain Analytics:&lt;/strong&gt; By using BigQuery’s capabilities, a developer can compare Stellar network data with data from other blockchains to identify trends, correlations, or opportunities for interoperability.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a id="sdk"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://developers.stellar.org/docs/tools/sdks/library" rel="noopener noreferrer"&gt;Stellar SDK&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Stellar’s Software Development Kits (SDKs) provide devs with the tools, libraries, and documentation to interact with and develop on the blockchain.&lt;/p&gt;

&lt;p&gt;The SDK Library allows developers to interact with the Stellar network using various programming languages.&lt;/p&gt;

&lt;p&gt;Here are the following programming language SDKs available:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;JavaScript SDK:&lt;/strong&gt; Used for building Stellar apps on Node.js or in the browser. It interacts with Soroban RPC and Horizon APIs for transaction management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python SDK:&lt;/strong&gt; Ideal for Python developers to build Stellar apps, offering tools for transaction management and Horizon API communication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;iOS SDK:&lt;/strong&gt; Supports iOS and Mac development, allowing for transaction management and interaction with Soroban smart contracts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flutter SDK:&lt;/strong&gt; Tailored for Flutter developers, enabling transaction handling and Soroban smart contract deployment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PHP SDK:&lt;/strong&gt; A PHP tool for building Stellar apps, managing transactions, and working with Soroban smart contracts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go SDK:&lt;/strong&gt; Split into packages for transaction construction and Horizon API interaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rust SDK:&lt;/strong&gt; A Rust crate for Soroban, essential for developers working with the Soroban smart contract platform.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a id="anchor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Anchors and Anchor Platform
&lt;/h3&gt;

&lt;p&gt;Anchors are important components of the Stellar network, acting as on and off-ramps connecting traditional financial systems and blockchain technology. Anchors allow users to transfer fiat currencies such as the US dollars or Nigerian naira, and receive an equivalent digital token on the Stellar network. Anchors also provide digital token redemption for real-world assets.&lt;/p&gt;

&lt;p&gt;Stellar hosts a global network of anchors, and businesses can use the Anchor Platform to create their anchor services. The Anchor platform consists of tools and APIs to easily create on-off-ramp services, using standard interfaces and stellar ecosystem offerings (SEPs) with stellar wallets and exchanges The easy-to-integrate platform supports asset management, connection services, and user account management, and offers flexible deployment options such as Docker and Kubernetes.&lt;/p&gt;

&lt;p&gt;Remember when I told you earlier that I was seeking a solution for cross-border exchange like sending BTC and receiving it in USDT? This is a perfect use case for this.&lt;/p&gt;

&lt;p&gt;You can build an entire Fintech company solely on this component alone e.g. &lt;strong&gt;EasySend(a fintech company)&lt;/strong&gt; wants to offer a cross-border remittance service between the United States and Nigeria, allowing users to send money from the U.S. to recipients in Nigeria quickly and at a low cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Works:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On-Ramp (U.S. Anchor):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;EasySend partners with a U.S.-based anchor that integrates with the Stellar network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A customer in the U.S. deposits U.S. dollars into the anchor’s bank account through a traditional payment method, such as a bank transfer or credit card.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The U.S. anchor issues equivalent digital tokens (e.g., USDT or USDC) on the Stellar network, which are credited to the customer's Stellar wallet.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cross-Border Transfer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The customer uses their Stellar wallet to send the USD tokens to a recipient in Nigeria. The transaction occurs almost instantly on the Stellar network, with minimal fees.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Off-Ramp (Nigerian Anchor):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Nigerian recipient partners with a local anchor that can convert digital tokens into Nigerian naira.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The recipient receives the USD tokens in their Stellar wallet and redeems them through the Nigerian anchor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Nigerian anchor exchanges the USD tokens for Nigerian naira and deposits the naira into the recipient's bank account or provides it as cash at a physical location.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a id="operation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Operation, Transaction Process and Fee
&lt;/h3&gt;

&lt;p&gt;The final thing that developers need to understand is how actions affect stellar networks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Operation
&lt;/h4&gt;

&lt;p&gt;Operations are the individual actions that modify the Stellar ledger from their account. For example, sending payments, invoking smart contracts, or changing account settings. Each operation has a threshold level (low, medium, or high) that determines the required signature weight for authorization. For example, if an account’s medium threshold is set to 5, the combined signature weight for operations needing a medium threshold must meet or exceed 5. Operations in smart contract transactions are limited to one per transaction.&lt;/p&gt;

&lt;h4&gt;
  
  
  Transaction
&lt;/h4&gt;

&lt;p&gt;Having understood that an Operation is a singular action that modifies the Stellar ledger then how are these several operations processed on the Stellar network?&lt;/p&gt;

&lt;p&gt;Remember when you are learning about Stellar Networks, you learn that Mainnet supports up to 1,000 operations and 100 smart contract transactions per ledger while Testnet and Futurenet can only take up 100 operations and 1 smart contract transaction per ledger. This is what a Transaction does, it bundles up these several operations and smart contract transactions and processes them.&lt;/p&gt;

&lt;p&gt;Transactions must be signed and authorized by the source account's public key, and if multiple signatures are needed (e.g., when the transaction affects more than one account), they must meet the required threshold weight.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Transactions are atomic in the sense that if one operation or a smart contract transaction fails, the entire transaction fails.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another thing to note is before submission, transactions undergo several validity checks, grouped into three categories: preconditions, operation validity, and transaction validity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Preconditions are optional, like time bounds or minimum sequence numbers, and help define when a transaction is valid.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operation validity checks ensure the operations meet signature, format, and protocol version requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transaction validity checks include verifying the source account’s existence, fee payment, and correct sequence number.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrxrq6pngjcn595wr6xs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrxrq6pngjcn595wr6xs.png" alt="Operations and transaction illustration" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Fees
&lt;/h4&gt;

&lt;p&gt;As you know every blockchain requires gas fees to process transactions using the blockchain token. As for stellar, Fees are paid in XLM and include a &lt;em&gt;Resource Fee&lt;/em&gt; for smart contract transactions, based on resource consumption, and an &lt;em&gt;Inclusion Fee&lt;/em&gt;, the maximum amount willing to be paid for ledger inclusion.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Fees&lt;/strong&gt;: Applied to smart contract transactions, calculated based on resource consumption (CPU, memory, etc.). They are non-refundable except for specific components like rent or events.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inclusion Fees&lt;/strong&gt;: The maximum amount a user is willing to pay for a transaction to be included in the ledger. These vary depending on network conditions and surge pricing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Smart contract transactions undergo metering to account for resource costs. Strategies for managing fees include setting a high maximum fee or using fee-bump transactions to ensure inclusion during surge pricing.&lt;/p&gt;

&lt;p&gt;&lt;a id="conclusion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You must have experienced some "wow" when you read this article, Yes that's the whole essence of this article. This article has exposed you to core concepts and components of Stellar Blockchain such as Stellar Network, Stellar Core, Anchor, SCP, Stellar SDK, Operation and Transaction processing and fees, Data querying and Smart contract development.&lt;/p&gt;

&lt;p&gt;&lt;a id="references"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://stellar.org/" rel="noopener noreferrer"&gt;Stellar Site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developers.stellar.org/" rel="noopener noreferrer"&gt;Stellar Developers' Doc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://discord.gg/st7Mxd58BV" rel="noopener noreferrer"&gt;Stellar Discord channel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stellar.org/developers-blog" rel="noopener noreferrer"&gt;Developers' Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://communityfund.stellar.org/" rel="noopener noreferrer"&gt;Stellar Community F&lt;/a&gt;&lt;a href="https://communityfund.stellar.org/" rel="noopener noreferrer"&gt;und&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/stellar" rel="noopener noreferrer"&gt;GitHub page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://communityfund.stellar.org/" rel="noopener noreferrer"&gt;Community Fund&lt;/a&gt;&lt;/p&gt;

</description>
      <category>stellarchallenge</category>
      <category>devchallenge</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Ethereum Unraveled: What Every Newbie Should Know About this Blockchain Giant</title>
      <dc:creator>Ileolami</dc:creator>
      <pubDate>Thu, 26 Oct 2023 14:13:53 +0000</pubDate>
      <link>https://forem.com/ileolami/ethereum-unraveled-what-every-newbie-should-know-about-this-blockchain-giant-58ed</link>
      <guid>https://forem.com/ileolami/ethereum-unraveled-what-every-newbie-should-know-about-this-blockchain-giant-58ed</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Most people think Ethereum is a name for cryptocurrency but the name is actually for a blockchain network. Ethereum is an open-source, globally decentralized computing infrastructure that executes programs called smart contracts. It uses a blockchain to synchronize and store the system's state changes and a cryptocurrency called ether to meter and constrain execution resource costs. This means that Ethereum is like a giant computer that is being shared by people all over the world that runs or performs specific tasks automatically when the conditions are being met using blockchain technology to keep track and organize everything securely. &lt;em&gt;Ether&lt;/em&gt;, Ethereum native currency is paid before this computer can be used and also to run these programs and control how much people can use this computer.&lt;/p&gt;

&lt;p&gt;The significance of Ethereum lies in its role as the foundation for a new generation of decentralized applications and protocols. It introduced the concept of a programmable blockchain, allowing developers to create complex applications that can run without interference from third parties, censorship, or downtime.&lt;/p&gt;

&lt;p&gt;The purpose and construction of Ethereum are strikingly different from other open blockchains that preceded it, including Bitcoin. In contrast to Bitcoin, which has a restricted scripting language, Ethereum is designed to be a general-purpose programmable blockchain that runs a virtual machine capable of running code that is arbitrary and of unbounded complexity. Ethereum's language is Turing Complete, which means that Ethereum is used as a general-purpose computer, in contrast to Bitcoin, whose Script language is limited to simple true/false evaluation of spending conditions.&lt;/p&gt;

&lt;p&gt;In this article, the birth of Ethereum, the Ethereum blockchain, smart contracts, ETH, DApps, wallet and storage will be explained in detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Birth of Ethereum
&lt;/h2&gt;

&lt;p&gt;The potency of the Bitcoin model, which was recognised by those seeking to develop advanced applications outside of cryptocurrency use, led to the birth of Ethereum. However, developers faced challenges which were either building on top bitcoin or starting a new blockchain. Building on Bitcoin requires adapting to the purposeful limitations of the network and looking for workarounds which means that limited projects with less data storage, limited transaction types etc can work on Bitcoin. For projects that require more capacity before they can run freely and easily, a new blockchain is the only option.&lt;/p&gt;

&lt;p&gt;In late 2013, Vitalik Burtein, a young programmer and Bitcoin enthusiast proposed a more comprehensive strategy to the Mastercoin team, allowing scriptable, flexible, but not Turing-complete contracts to take the place of Mastercoin's specialised contract language. The Mastercoin team was impressed, but this suggestion represented a shift that was too radical to be accommodated in their development roadmap. In December 2013, Vitalik started sharing a whitepaper that outlined the idea behind Ethereum: a Turing-complete, general-purpose blockchain. This early draught was seen by a small group of people, who provided feedback that Vitalik used to improve the idea.&lt;/p&gt;

&lt;p&gt;In early 2014, the Ethereum project was formally announced, and the Ethereum Foundation was established to support its development. The foundation conducted a public crowd sale of Ether (ETH), Ethereum's native cryptocurrency, to raise funds for expansion. The Ethereum network went live with its first release, known as "Frontier," on July 30, 2015. This marked the beginning of the Ethereum blockchain's public existence, and developers started building decentralized applications (dApps) on the platform.&lt;/p&gt;

&lt;p&gt;The primary purpose behind the creation of Ethereum is to serve as a decentralized platform for building and executing smart contracts and decentralized applications (dApps). Ethereum is also a distributed state machine that can track both the state of currency ownership, i.e. making sure everyone knows who has how much money, and no one can cheat. The state transitions of general-purpose data stores e.g. if you have a list of high scores in a game, this would track when someone gets a higher score and updates the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Ethereum Blockchain
&lt;/h2&gt;

&lt;p&gt;Blockchain is a distributed and decentralized digital ledger technology that records transactions across a network of computers securely and transparently. This is the underlying technology behind &lt;a href="https://ileolami.hashnode.dev/why-decentralization-makes-web3-better" rel="noopener noreferrer"&gt;Web3&lt;/a&gt;. Each computer in the blockchain is connected and shares a copy of the ledger, meaning this ledger is not prone to manipulation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blockchain functions in this manner:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Distributed Ledger:&lt;/strong&gt;
Blockchain operates on a network of computers in which each computer has a copy of entire details on the blockchain.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transaction:&lt;/strong&gt;&lt;br&gt;
when a user initiates a transaction e.g. sending a message to another user, the transaction consists of the sender's address, the receiver's address, the encryption of the message sent and the digital signature, this information is sent across all nodes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consensus:&lt;/strong&gt; &lt;br&gt;
Before a transaction is added to the block, validation has to be carried through the consensus mechanism. This consensus mechanism varies from one network to another e.g Proof of Stake(PoS), Proof of Work(PoW), Proof of Burn(PoB) etc&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Immutability:&lt;/strong&gt;&lt;br&gt;
When a block is added to the blockchain, it is very difficult to change or manipulate any of the details inside it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transparency:&lt;/strong&gt;&lt;br&gt;
Blockchain is public which allows everyone to see the entire activities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ethereum's Blockchain
&lt;/h2&gt;

&lt;p&gt;It is a decentralized and open-source platform that enables developers to build and deploy smart contracts and decentralized applications (dApps).&lt;/p&gt;

&lt;h3&gt;
  
  
  Ethereum Blockchain differs from traditional databases in terms of:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;- Decentralization:&lt;/strong&gt;&lt;br&gt;
 Ethereum's blockchain is decentralized in that a single entity doesn't control it while the traditional database is controlled by a single entity i.e. the security of those data is entrusted by such an organisation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transparency:&lt;/strong&gt; Ethereum's blockchain is public and transparent while traditional databases are private and restricted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Immutability:&lt;/strong&gt; Once data is added to Ethereum's blockchain, it becomes impossible to alter any of the details while in a traditional database, details on it can be changed, manipulated or deleted by anyone who has access to them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Ethereum uses cryptographic techniques to secure transactions and data while traditional databases rely on minimal security techniques to ensure data which is prone to hacking or failure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Smart Contracts - The Game Changer
&lt;/h2&gt;

&lt;p&gt;Cryptographer Nick Szabo coined the term Smart Contract in the 1990s and defined it as “&lt;em&gt;a set of promises, specified in digital form, including protocols within which the parties perform on the other promises&lt;/em&gt;".&lt;/p&gt;

&lt;p&gt;Smart Contracts are sets of programs written in high-level language such as Solidity etc which are executed when certain conditions are met but to run, they must be compiled to the low-level bytecode that runs in the Ethereum Virtual Machine(EVM). Smart contracts are an effective and transparent means of automating and securing different kinds of contracts in a transparent and trustless way. They are an essential component of blockchain technology and play a crucial role in the creation of decentralised apps (dApps).&lt;/p&gt;

&lt;p&gt;Smart contracts are essential to Ethereum because they allow developers to build decentralized applications (dApps) on the Ethereum network. DApps are applications that are not controlled by any single entity, and they can be used to automate a wide variety of transactions, such as the sale of a house or the payment of insurance premiums.&lt;/p&gt;

&lt;h3&gt;
  
  
  Examples of real-world applications for smart contracts are :
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Decentralized Exchanges(DEXes)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decentralized Finance (DeFi) applications&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-Fungible Tokens(NFTs)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ether (ETH) - Ethereum's Native Cryptocurrency
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Ether _is the native currency for Ethereum which is also known as "ETH". Ether is subdivided into smaller units the same way normal coins are subdivided into smaller units e.g. 1 Naira is equivalent to 100kb in Nigeria currency. The smallest unit of Ether is _wei&lt;/em&gt;. One ether is equivalent to a quintillion wei (1, 000 000 000 000 000 000). The role of ether in the ecosystem is used as a payment for transaction and gas fees, Incentivizing Miners/Validators and stored as values.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ether is used In:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transaction&lt;/strong&gt;&lt;br&gt;
Ether can be sent and received from one person and another through participants' Ethereum addresses. Ether is also used for interacting with smart contracts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transaction Fees (Gas)&lt;/strong&gt;&lt;br&gt;
When you initiate a transaction or interact with a smart contract, you pay a transaction fee known as "gas." Gas is paid in Ether and covers the computational work required to process and validate the transaction on the Ethereum network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Store of Value&lt;/strong&gt;&lt;br&gt;
Ether can be stored as a value just like traditional currencies to preserve wealth or as a hedge against inflation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collateral for DeFi and Financial Activities:&lt;/strong&gt;&lt;br&gt;
In decentralized finance (DeFi) applications, Ether can be used as collateral to borrow other cryptocurrencies or stablecoins. This allows users to leverage their Ether holdings for various financial activities, such as lending, borrowing, and trading.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Decentralized Applications (DApps)
&lt;/h2&gt;

&lt;p&gt;Decentralized Applications (DApps) are software applications that run on blockchain and they are designed to be decentralized. They made use of Ethereum's blockchain by interacting with smart contracts to guarantee security and transparency, as well as to issue and manage tokens that were available worldwide.&lt;/p&gt;

&lt;p&gt;Examples of Popular successful DApps on the Ethereum platform include:&lt;br&gt;
Chainlink&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uniswap&lt;/li&gt;
&lt;li&gt;Brave Browser&lt;/li&gt;
&lt;li&gt;Rarible&lt;/li&gt;
&lt;li&gt;Gaming DApps&lt;/li&gt;
&lt;li&gt;Aave&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wallets
&lt;/h2&gt;

&lt;p&gt;Wallet is a software application that serves as the primary user interface to Ethereum. The wallet controls access to a user’s money, managing keys and addresses, tracking the balance, and creating and signing transactions. Ethereum wallet is one with a single private key and address that you reuse for everything.&lt;/p&gt;

&lt;p&gt;The misconception about Ethereum wallets is that wallets hold your coin or tokens but the truth is Ethereum wallets only hold your keys while your coins and tokens are recorded on the Ethereum blockchain using the keys to approve transactions carried out by wallets by the user. Ethereum wallet can be seen as a keychain containing private keys and public keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  There two types of wallets which are:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Non-deterministic Wallet&lt;/strong&gt; 
All the keys here are independently generated from different random numbers. The keys here are not related to each and it is also known as the JBOK wallet(Just a Bunch Of Keys). This type of wallet is old style and it has been replaced with the deterministic wallets. e.g Bitaddress.org&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A non-deterministic wallet will need to regularly increase the list of keys, meaning the user will need to do a regular backup or else the user may lose their token or coin in case of an accident.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Wallet&lt;/strong&gt;
in this type of wallet, all the keys are generated from a single random number known as a Seed. The keys are related to each other and can be generated again if one has the seed. e.g MetaMask&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, we've covered fundamental aspects of Ethereum that are essential for beginners to grasp. These include the historical background of Ethereum, an overview of the Ethereum blockchain, the concept of smart contracts, Ethereum's native cryptocurrency known as ether, insights into decentralized applications (DApps), and an introduction to wallets. For a deeper understanding of Ethereum, consider exploring &lt;a href="https://github.com/ethereumbook/ethereumbook/blob/develop/01what-is.asciidoc" rel="noopener noreferrer"&gt;this resource&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ethereum</category>
      <category>web3</category>
      <category>wedeveloper</category>
    </item>
    <item>
      <title>ARRAY METHODS</title>
      <dc:creator>Ileolami</dc:creator>
      <pubDate>Tue, 11 Jul 2023 09:00:05 +0000</pubDate>
      <link>https://forem.com/ileolami/array-methods-5b28</link>
      <guid>https://forem.com/ileolami/array-methods-5b28</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;An array is a type of data structure in programming most especially in Javascript language, they are used to store data in such a way they can be easily accessed. An array can consist of strings, integers, objects, floats and arrays. &lt;/p&gt;

&lt;p&gt;This article will give a proper guide on how to manipulate an array using these methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;POP()&lt;/li&gt;
&lt;li&gt;PUSH()&lt;/li&gt;
&lt;li&gt;UNSHIFT()&lt;/li&gt;
&lt;li&gt;SHIFT()&lt;/li&gt;
&lt;li&gt;SLICE() &lt;/li&gt;
&lt;li&gt;SPLICE()&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  PUSH() Method
&lt;/h2&gt;

&lt;p&gt;The push() method is used to add an element at the end of an array. For example, &lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5];&lt;br&gt;
arr.push(6);&lt;br&gt;
console.log(arr);&lt;br&gt;
// output arr = [1, 2, 3, 4, 5, 6]&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  POP() Method
&lt;/h2&gt;

&lt;p&gt;The pop() method is used to remove the last element from an array. For example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
arr.pop();&lt;br&gt;
console.log(arr);&lt;br&gt;
//output arr = [1, 2, 3, 4, 5];&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SHIFT() Method
&lt;/h2&gt;

&lt;p&gt;The shift() method is used to remove the first element from an array. For example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
arr.shift();&lt;br&gt;
console.log(arr);&lt;br&gt;
//the output arr = [2, 3, 4, 5, 6];&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  UNSHIFT() MetHod
&lt;/h2&gt;

&lt;p&gt;The unshift() method is used to add an element at the beginning of an array. For example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
arr.unshift(0);&lt;br&gt;
console.log(arr); &lt;br&gt;
//output arr = [0, 1, 2, 3, 4, 5, 6];&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SLICE() Method
&lt;/h2&gt;

&lt;p&gt;The slice() method is used to copy or extract a given number of elements to a new array, leaving the array it is called upon untouched. slice() takes only 2 parameters — the first is the index of the first element to include in the slice. The default value is 0. The second is the index at which to stop extraction. For example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
const array = arr.slice(1, 3);&lt;br&gt;
console.log(array);&lt;br&gt;
// output arra = [2,3];&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;If the parameter is left off, the array's elements will all be returned in their entirety, without omission. For example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
const array = arr.slice();&lt;br&gt;
console.log(array);&lt;br&gt;
// output arra = [1, 2, 3, 4, 5, 6];&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SPLICE() Method
&lt;/h2&gt;

&lt;p&gt;The splice() method in JavaScript is used to change the content of an array by removing or replacing existing elements and/or adding new elements in place. It is a mutating method, which means that it changes the original array. &lt;/p&gt;

&lt;p&gt;It can take up to three parameters. The first parameter stated where the cutting will start while the second parameter stated where the cutting will end. for example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
arr.splice(1, 3);&lt;br&gt;
console.log(arr);&lt;br&gt;
//the output will be arr = [1, 5, 6]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;the third parameter can be comprised of one or more elements to add to the array. for example, &lt;/p&gt;

&lt;p&gt;&lt;code&gt;const arr = [1, 2, 3, 4, 5, 6];&lt;br&gt;
arr.splice(1, 3, 4, 5);&lt;br&gt;
console.log(arr);&lt;br&gt;
//the output will be  arr = [1, 4, 5, 5, 6]&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;p&gt;The above explanation, I've  been able to enlighten you on how an array can be manipulated. For further explanation check this documentation &lt;a href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/" rel="noopener noreferrer"&gt;here.&lt;/a&gt; &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
