<?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>DEV Community: Mahmud eyitoba bello</title>
    <description>The latest articles on DEV Community by Mahmud eyitoba bello (@therustfanatic).</description>
    <link>https://dev.to/therustfanatic</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%2F573199%2F8af854c1-a8a3-4e48-8311-7322a91da418.png</url>
      <title>DEV Community: Mahmud eyitoba bello</title>
      <link>https://dev.to/therustfanatic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/therustfanatic"/>
    <language>en</language>
    <item>
      <title>#icp</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Mon, 03 Feb 2025 18:42:24 +0000</pubDate>
      <link>https://dev.to/therustfanatic/icp-44b3</link>
      <guid>https://dev.to/therustfanatic/icp-44b3</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/therustfanatic" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F573199%2F8af854c1-a8a3-4e48-8311-7322a91da418.png" alt="therustfanatic"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/therustfanatic/build-your-first-todo-app-on-icp-a-friendly-guide-56po" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Build Your First Todo App on ICP: A Friendly Guide&lt;/h2&gt;
      &lt;h3&gt;Mahmud eyitoba bello ・ Feb 3&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#web3&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>opensource</category>
      <category>discuss</category>
      <category>web3</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build Your First Todo App on ICP: A Friendly Guide</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Mon, 03 Feb 2025 18:34:08 +0000</pubDate>
      <link>https://dev.to/therustfanatic/build-your-first-todo-app-on-icp-a-friendly-guide-56po</link>
      <guid>https://dev.to/therustfanatic/build-your-first-todo-app-on-icp-a-friendly-guide-56po</guid>
      <description>&lt;p&gt;Ready to build something cool on the Internet Computer? Let's create a todo app together. Don't worry if you're new to this - I'll walk you through everything step by step, no fancy jargon required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why ICP Is Pretty Cool
&lt;/h2&gt;

&lt;p&gt;Think of Internet Computer like a giant, shared computer that's always online. Instead of running your app on servers owned by big companies, it runs on a network that belongs to everyone. Pretty neat, right? Here's why it's awesome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your app never goes down (unless the internet itself breaks!)&lt;/li&gt;
&lt;li&gt;You don't need to pay for expensive servers&lt;/li&gt;
&lt;li&gt;Users don't pay gas fees like on other blockchains&lt;/li&gt;
&lt;li&gt;It's fast - like, really fast&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;First, let's get your computer ready. Open your terminal and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sh &lt;span class="nt"&gt;-ci&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://sdk.dfinity.org/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This installs dfx - your new best friend for building ICP apps. Now create your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dfx new todo_app
&lt;span class="nb"&gt;cd &lt;/span&gt;todo_app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Building the Brain (Backend)
&lt;/h2&gt;

&lt;p&gt;Let's create the backend first. find a file called &lt;code&gt;src/todo_app_backend/main.mo&lt;/code&gt; and drop in this code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Array "mo:base/Array";
actor {
    // This is what each todo looks like
    type Todo = {
        id: Nat;
        text: Text;
        completed: Bool;
    };

    // Keep all todos in one place
    private var todos: [Todo] = [];
    private var nextId: Nat = 0;

    // Add a new todo to the list
    public func addTodo(text: Text) : async Nat {
        let todo: Todo = {
            id = nextId;
            text = text;
            completed = false;
        };
        todos := Array.append(todos, [todo]);
        nextId += 1;
        return todo.id;
    };

    // Get all your todos
    public query func getTodos() : async [Todo] {
        return todos;
    };

    // Mark a todo as done (or not done)
    public func toggleTodo(id: Nat) : async Bool {
        todos := Array.map(todos, func (todo: Todo) : Todo {
            if (todo.id == id) {
                return {
                    id = todo.id;
                    text = todo.text;
                    completed = not todo.completed;
                };
            };
            todo;
        });
        return true;
    };

    // Remove a todo
    public func deleteTodo(id: Nat) : async Bool {
        todos := Array.filter(todos, func(todo: Todo) : Bool { 
            todo.id != id 
        });
        return true;
    };
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Making It Pretty (Frontend)
&lt;/h2&gt;

&lt;p&gt;Now for the part you'll actually see! Create &lt;code&gt;src/todo_app_frontend/src/main.jsx&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;todo_app_backend&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;declarations/todo_app_backend&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setTodos&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;([]);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;newTodo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setNewTodo&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Get all todos when the app starts&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;loadTodos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;todo_app_backend&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getTodos&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="nf"&gt;setTodos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="c1"&gt;// Add a new todo&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleAdd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;newTodo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;todo_app_backend&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addTodo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;newTodo&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;setNewTodo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;loadTodos&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="c1"&gt;// Mark a todo as done/not done&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleToggle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;todo_app_backend&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toggleTodo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;loadTodos&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="c1"&gt;// Delete a todo&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleDelete&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;todo_app_backend&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deleteTodo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;loadTodos&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;loadTodos&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;

    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"container mx-auto p-4"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-2xl font-bold mb-4"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Todo List&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt; &lt;span class="na"&gt;onSubmit&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleAdd&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"mb-4"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt;
                    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt;
                    &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;newTodo&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                    &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setNewTodo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                    &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"border p-2 mr-2"&lt;/span&gt;
                    &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Add new todo"&lt;/span&gt;
                &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"bg-blue-500 text-white px-4 py-2 rounded"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    Add
                &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"flex items-center mb-2"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt;
                            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt;
                            &lt;span class="na"&gt;checked&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completed&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleToggle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"mr-2"&lt;/span&gt;
                        &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;span&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completed&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;line-through&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;span&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
                            &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"ml-auto text-red-500"&lt;/span&gt;
                        &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                            Delete
                        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Starting It Up
&lt;/h2&gt;

&lt;p&gt;Time to see your app in action! In your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dfx start &lt;span class="nt"&gt;--clean&lt;/span&gt; &lt;span class="nt"&gt;--background&lt;/span&gt;
dfx deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your app will pop up at &lt;a href="http://localhost:4943" rel="noopener noreferrer"&gt;http://localhost:4943&lt;/a&gt;. Pretty cool, right?&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Actually Happening Here?
&lt;/h2&gt;

&lt;p&gt;Let's break down what we just built:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The Motoko code (backend) is like a super-secure notebook:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It remembers all your todos&lt;/li&gt;
&lt;li&gt;Gives each todo a unique ID&lt;/li&gt;
&lt;li&gt;Keeps track of what's done and what isn't&lt;/li&gt;
&lt;li&gt;Can add, check off, or delete todos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The React code (frontend) is like a friendly interface:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shows you all your todos&lt;/li&gt;
&lt;li&gt;Lets you type in new ones&lt;/li&gt;
&lt;li&gt;Has checkboxes to mark things as done&lt;/li&gt;
&lt;li&gt;Includes delete buttons to remove todos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cool Things You Can Add
&lt;/h2&gt;

&lt;p&gt;Now that you've got the basics working, why not spice it up? You could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add due dates&lt;/li&gt;
&lt;li&gt;Group todos into categories&lt;/li&gt;
&lt;li&gt;Share todos with friends&lt;/li&gt;
&lt;li&gt;Add file attachments&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Things Go Wrong
&lt;/h2&gt;

&lt;p&gt;Don't panic! Here's what to check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is dfx running? (check with &lt;code&gt;dfx status&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Did you save all your files?&lt;/li&gt;
&lt;li&gt;Are there any red error messages?&lt;/li&gt;
&lt;li&gt;When in doubt, try &lt;code&gt;dfx deploy&lt;/code&gt; again&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Need Help?
&lt;/h2&gt;

&lt;p&gt;Everyone gets stuck sometimes. Here's where to find help:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DFINITY's Discord channel&lt;/li&gt;
&lt;li&gt;Stack Overflow (tag: 'internet-computer')&lt;/li&gt;
&lt;li&gt;Internet Computer forums&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember: every developer started exactly where you are now. Take your time, have fun, and don't be afraid to experiment - that's how we learn!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>discuss</category>
      <category>web3</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Four Layers of Internet Computer Protocol</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Fri, 17 Jan 2025 20:42:46 +0000</pubDate>
      <link>https://dev.to/therustfanatic/the-four-layers-of-internet-computer-protocol-5dp</link>
      <guid>https://dev.to/therustfanatic/the-four-layers-of-internet-computer-protocol-5dp</guid>
      <description>&lt;h2&gt;
  
  
  Understanding ICP's Four Layers: A Friendly Guide
&lt;/h2&gt;

&lt;p&gt;Hey there! Let's break down how the Internet Computer Protocol (ICP) works in a way that actually makes sense. Think of ICP like a really well-organized city, where different departments work together to keep everything running smoothly. Let's explore each "department" (or layer) and see what they do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four Layers: Your Quick Guide
&lt;/h2&gt;

&lt;p&gt;Before we dive in, here's what we're going to cover:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;P2P Network Layer (how computers talk to each other)&lt;/li&gt;
&lt;li&gt;Consensus Layer (how they agree on things)&lt;/li&gt;
&lt;li&gt;Message Routing Layer (how messages find their way)&lt;/li&gt;
&lt;li&gt;Execution Layer (where the actual work happens)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Layer 1: P2P (Peer-to-Peer) Network Layer
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Think of this as the city's road system and communication network&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is P2P, anyway?
&lt;/h3&gt;

&lt;p&gt;P2P means "peer-to-peer" - imagine it like people talking directly to each other instead of going through a middle person. In computer terms, it's when computers connect and share information directly, rather than going through a central server.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does this layer do?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Finds Other Computers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps track of who's who in the network&lt;/li&gt;
&lt;li&gt;Helps computers find each other (like a phone book)&lt;/li&gt;
&lt;li&gt;Notices when new computers join or leave&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Manages Connections&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Makes sure computers can talk to each other&lt;/li&gt;
&lt;li&gt;Keeps connections strong and reliable&lt;/li&gt;
&lt;li&gt;Handles backup connections if some fail&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Real-world example: It's like how your phone knows how to find and connect to other phones for a video call, even if you're both moving around.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 2: Consensus Layer
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Think of this as the city's decision-making system&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Consensus?
&lt;/h3&gt;

&lt;p&gt;Consensus is just a fancy word for "everyone agreeing on something." In ICP, it's how all the computers in the network agree on what's happening and in what order.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Making Decisions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Computers vote on what happened and when&lt;/li&gt;
&lt;li&gt;Makes sure everyone has the same information&lt;/li&gt;
&lt;li&gt;Prevents any single computer from cheating&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Keeping Things in Order&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decides which actions happen first&lt;/li&gt;
&lt;li&gt;Makes sure everything is recorded properly&lt;/li&gt;
&lt;li&gt;Keeps track of the official history&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Real-world example: It's like how a group of friends decides where to go for dinner - everyone needs to agree on the final choice, and they need to remember what they decided.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 3: Message Routing Layer
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Think of this as the city's postal service&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Message Routing?
&lt;/h3&gt;

&lt;p&gt;This is how information gets from Point A to Point B in the network. It's like having a really smart postal service that knows exactly how to get packages to their destination.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does it handle?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Delivering Messages&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Makes sure messages reach the right destination&lt;/li&gt;
&lt;li&gt;Finds the best path for each message&lt;/li&gt;
&lt;li&gt;Handles messages between different parts of the network&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Traffic Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevents message traffic jams&lt;/li&gt;
&lt;li&gt;Makes sure important messages get through first&lt;/li&gt;
&lt;li&gt;Handles backup plans if the usual path is blocked&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Real-world example: Like how GPS finds the best route for your car, considering traffic, road closures, and shortcuts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 4: Execution Layer
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Think of this as where the actual work gets done - like the city's factories and offices&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Execution?
&lt;/h3&gt;

&lt;p&gt;This is where computer programs (called "canisters" in ICP) actually run and do their job. It's where all the actual computing happens.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens here?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Running Programs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs the actual applications (called "canisters")&lt;/li&gt;
&lt;li&gt;Manages computer memory and resources&lt;/li&gt;
&lt;li&gt;Makes sure programs run correctly and safely&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Managing Resources&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps track of how much computing power is used&lt;/li&gt;
&lt;li&gt;Makes sure programs don't use too much memory&lt;/li&gt;
&lt;li&gt;Handles program storage and data&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Real-world example: It's like how your phone runs apps - it needs to make sure each app has enough memory and battery power, and that they're not interfering with each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do These Layers Work Together?
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Like departments in a well-run organization&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let's follow what happens when you use an app on ICP:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You click a button in an app&lt;/li&gt;
&lt;li&gt;The P2P layer figures out which computers need to handle your request&lt;/li&gt;
&lt;li&gt;The Consensus layer makes sure everyone agrees on what you're trying to do&lt;/li&gt;
&lt;li&gt;The Message Routing layer gets your request to the right place&lt;/li&gt;
&lt;li&gt;The Execution layer actually performs the action you wanted&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why This Matters to You
&lt;/h2&gt;

&lt;p&gt;Even if you're not a tech person, understanding these layers helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Know how your apps and data are being handled&lt;/li&gt;
&lt;li&gt;Understand why ICP is different from regular internet services&lt;/li&gt;
&lt;li&gt;Make better decisions about using ICP services&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Questions Answered
&lt;/h2&gt;

&lt;h3&gt;
  
  
  "Why do we need all these layers?"
&lt;/h3&gt;

&lt;p&gt;Each layer has a specific job, like departments in a company. Having specialized layers makes everything run more smoothly and safely.&lt;/p&gt;

&lt;h3&gt;
  
  
  "What makes ICP different from regular internet?"
&lt;/h3&gt;

&lt;p&gt;Regular internet relies on big companies running central servers. ICP spreads everything across many computers, making it harder to shut down and more fair for everyone.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Is it complicated to use?"
&lt;/h3&gt;

&lt;p&gt;Nope! All these layers work behind the scenes. When you use an ICP app, it feels just like using any other app - all the complex stuff happens automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Think of ICP's four layers as a well-oiled machine where each part has its job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;P2P Layer connects everyone&lt;/li&gt;
&lt;li&gt;Consensus Layer keeps everyone in agreement&lt;/li&gt;
&lt;li&gt;Message Routing Layer delivers information&lt;/li&gt;
&lt;li&gt;Execution Layer gets things done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, they create a system that's:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hard to shut down&lt;/li&gt;
&lt;li&gt;Fair for everyone&lt;/li&gt;
&lt;li&gt;Able to run the next generation of internet services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, you don't need to understand all the technical details to use ICP - but knowing the basics helps you appreciate what's happening behind the scenes!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Got questions? Feel free to ask! Sometimes the best way to understand is to relate these concepts to things you already know.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>icp</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>smartcontract</category>
    </item>
    <item>
      <title>Blockchain Fundamentals and ICP Architecture: A Deep Dive</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Fri, 17 Jan 2025 20:32:04 +0000</pubDate>
      <link>https://dev.to/therustfanatic/blockchain-fundamentals-and-icp-architecture-a-deep-dive-5chh</link>
      <guid>https://dev.to/therustfanatic/blockchain-fundamentals-and-icp-architecture-a-deep-dive-5chh</guid>
      <description>&lt;p&gt;Hey there! Let's dive into the fascinating world of blockchain and the Internet Computer Protocol (ICP). I will break this down in a way that'll make sense, even if you're just getting started with blockchain technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Building Blocks: Understanding Blockchain Basics
&lt;/h2&gt;

&lt;p&gt;Think of a blockchain like a digital ledger that everyone can see, but nobody can tamper with. You know how we used to write important stuff in those big ledger books? Well, blockchain is like that, but way cooler and more secure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Blockchain Matters
&lt;/h3&gt;

&lt;p&gt;Picture this: You're playing a game of Monopoly, but instead of having one banker, everyone at the table keeps track of all the money and properties. If someone tries to cheat, everyone else would know immediately because they all have the same information. That's basically how blockchain works, but for real-world stuff like money, contracts, and applications.&lt;/p&gt;

&lt;p&gt;Key things that make blockchain special:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's like a shared notebook that everyone can read but nobody can erase&lt;/li&gt;
&lt;li&gt;Once something's written down, it's there forever (like that embarrassing yearbook photo, but for data)&lt;/li&gt;
&lt;li&gt;Everyone agrees on what's written because they all follow the same rules&lt;/li&gt;
&lt;li&gt;It works without needing to trust any single person or company&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Internet Computer: Not Your Average Blockchain
&lt;/h2&gt;

&lt;p&gt;Now, let's talk about what makes ICP different from your typical blockchain. Imagine if you could take everything cool about blockchain and combine it with the power of the internet itself. That's basically what ICP is trying to do.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Secret Sauce: Network Nervous System
&lt;/h3&gt;

&lt;p&gt;Think of the Network Nervous System (NNS) as the brain of the entire operation. It's like having a super-smart autopilot that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps everything running smoothly&lt;/li&gt;
&lt;li&gt;Makes sure everyone plays by the rules&lt;/li&gt;
&lt;li&gt;Updates the system when needed&lt;/li&gt;
&lt;li&gt;Manages all the resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cool part? It's not controlled by any single company or person. Instead, it's run by the community through something called "neurons" (fancy name for voting rights).&lt;/p&gt;

&lt;h3&gt;
  
  
  Breaking Down the Architecture
&lt;/h3&gt;

&lt;p&gt;Let's look at how ICP is built, layer by layer:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. The Foundation Layer
&lt;/h4&gt;

&lt;p&gt;This is where all the heavy lifting happens. We've got:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data centers spread across the world&lt;/li&gt;
&lt;li&gt;Super powerful computers working together&lt;/li&gt;
&lt;li&gt;Special hardware that keeps everything secure&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. The Protocol Layer
&lt;/h4&gt;

&lt;p&gt;This is the rule book that everyone follows. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ways for computers to talk to each other&lt;/li&gt;
&lt;li&gt;Security measures to protect everything&lt;/li&gt;
&lt;li&gt;Methods for reaching agreement on what's happening&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. The Canister Layer
&lt;/h4&gt;

&lt;p&gt;This is where things get really interesting. Canisters are like super-powered smart contracts that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run websites directly on the blockchain&lt;/li&gt;
&lt;li&gt;Store and process data&lt;/li&gt;
&lt;li&gt;Talk to other canisters&lt;/li&gt;
&lt;li&gt;Handle user interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Makes ICP Special?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Speed and Scalability
&lt;/h3&gt;

&lt;p&gt;Remember how Bitcoin can only handle a few transactions per second? ICP can handle thousands. It's like comparing a bicycle to a sports car.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real Web Integration
&lt;/h3&gt;

&lt;p&gt;Most blockchains can't interact directly with the internet. ICP can. It's like having a blockchain that speaks fluent "internet."&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Effectiveness
&lt;/h3&gt;

&lt;p&gt;Instead of paying crazy fees for every little thing (looking at you, Ethereum), ICP uses something called "cycles" which are way more predictable and usually cheaper.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Applications
&lt;/h2&gt;

&lt;p&gt;Let's talk about what you can actually do with this stuff:&lt;/p&gt;

&lt;h3&gt;
  
  
  Web3 Applications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Social media platforms that users actually own&lt;/li&gt;
&lt;li&gt;Games where your items are truly yours&lt;/li&gt;
&lt;li&gt;Financial services without the banks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Business Solutions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Supply chain tracking that actually works&lt;/li&gt;
&lt;li&gt;Secure document storage&lt;/li&gt;
&lt;li&gt;Identity verification systems&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Developer Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Building websites that can't be taken down&lt;/li&gt;
&lt;li&gt;Creating applications that run themselves&lt;/li&gt;
&lt;li&gt;Making services that don't need servers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;The really exciting part about ICP is where it's heading. Imagine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Websites that never go down&lt;/li&gt;
&lt;li&gt;Apps that can't be censored&lt;/li&gt;
&lt;li&gt;Services that run themselves&lt;/li&gt;
&lt;li&gt;Digital identities you actually control&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Some Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Remember when the internet first came out, and most people couldn't imagine how it would change our lives? ICP and blockchain technology are at that same stage right now. We're just scratching the surface of what's possible.&lt;/p&gt;

&lt;p&gt;The architecture might seem complicated (and honestly, parts of it are), but the goal is simple: create a better, more open internet that everyone can use and nobody can control.&lt;/p&gt;

&lt;p&gt;Whether you're a developer, business owner, or just someone interested in technology, understanding these fundamentals puts you ahead of the curve. As we move towards a more decentralized future, the principles and architecture we've discussed here will become increasingly important.&lt;/p&gt;

&lt;p&gt;Keep exploring, keep asking questions, and most importantly, keep imagining what's possible. After all, that's how all great technological revolutions start.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stay curious, and see you in the decentralized future!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftprjqe7e28dd0e9hqfa3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftprjqe7e28dd0e9hqfa3.png" alt="icp architecture" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>icp</category>
      <category>blockchain</category>
      <category>smartcontract</category>
      <category>web3</category>
    </item>
    <item>
      <title>AI Agents Meet TEEs: When Digital Minds Get Their Own Secret Bunkers</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Thu, 02 Jan 2025 20:15:35 +0000</pubDate>
      <link>https://dev.to/therustfanatic/ai-agents-meet-tees-when-digital-minds-get-their-own-secret-bunkers-35hj</link>
      <guid>https://dev.to/therustfanatic/ai-agents-meet-tees-when-digital-minds-get-their-own-secret-bunkers-35hj</guid>
      <description>&lt;h2&gt;
  
  
  The Deep Dive
&lt;/h2&gt;

&lt;p&gt;Remember when you were a kid and had a secret hideout where you could think, plan, and dream without anyone bothering you? That's basically what we're giving to AI agents when we combine them with Trusted Execution Environments (TEEs). But instead of a treehouse, they get an ultra-secure digital bunker inside a computer processor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Marriage Makes Sense
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa1pnz7uq0nfjbrmkxz0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa1pnz7uq0nfjbrmkxz0e.png" alt="marriage analysis" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Think about it: AI agents are getting smarter and more autonomous by the day. But with great power comes great responsibility (thanks, Spider-Man!). We need ways to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep their processing secure&lt;/li&gt;
&lt;li&gt;Protect sensitive data they work with&lt;/li&gt;
&lt;li&gt;Verify their decisions are trustworthy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;TEEs solve all these problems in one elegant package. It's like giving each AI agent their own personal vault where they can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process sensitive data without exposure&lt;/li&gt;
&lt;li&gt;Make decisions that can't be tampered with&lt;/li&gt;
&lt;li&gt;Prove their work without revealing their secrets&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Real-World Applications That'll Blow Your Mind
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. The Financial Advisor That Keeps Your Secrets
&lt;/h4&gt;

&lt;p&gt;Imagine an AI financial advisor that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See your complete financial history&lt;/li&gt;
&lt;li&gt;Know your secret investment goals&lt;/li&gt;
&lt;li&gt;Analyze your risk tolerance&lt;/li&gt;
&lt;li&gt;Make personalized recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here's the kicker: all this sensitive information never leaves the TEE. The only thing that comes out is the final advice, like "Buy these three stocks." Even the people running the AI service can't spy on your financial details!&lt;/p&gt;

&lt;h4&gt;
  
  
  2. The Ultimate Privacy-Preserving Medical Assistant
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx8ntcr1opi3od7e4y10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx8ntcr1opi3od7e4y10.png" alt="medical assist" width="800" height="300"&gt;&lt;/a&gt;&lt;br&gt;
Healthcare AI is amazing, but privacy is crucial. With TEEs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Patient data stays encrypted&lt;/li&gt;
&lt;li&gt;Analysis happens in the secure environment&lt;/li&gt;
&lt;li&gt;Only necessary results are shared&lt;/li&gt;
&lt;li&gt;Everything is HIPAA-compliant by design&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Plot Thickens: AI Agents Working Together
&lt;/h3&gt;

&lt;p&gt;Now here's where it gets really interesting. When multiple AI agents with TEEs work together, they can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Share insights without exposing raw data&lt;/li&gt;
&lt;li&gt;Verify each other's behavior&lt;/li&gt;
&lt;li&gt;Collaborate on sensitive tasks&lt;/li&gt;
&lt;li&gt;Maintain privacy between themselves&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's like having a team of super-smart consultants who can work together while keeping their sources and methods completely confidential.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's Next? The Future is Wild
&lt;/h3&gt;

&lt;p&gt;The combination of AI agents and TEEs is opening up possibilities that sound like sci-fi:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Autonomous Negotiators&lt;/strong&gt;: AI agents that can handle sensitive business deals with genuine confidentiality&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy-Preserving Social Networks&lt;/strong&gt;: Where AI moderators can spot bad behavior without actually reading your private messages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Secure Multi-Agent Systems&lt;/strong&gt;: Teams of AI agents working together on sensitive tasks while maintaining perfect isolation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trustworthy Autonomous Systems&lt;/strong&gt;: Self-driving cars and robots with verifiably secure decision-making processes&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Cherry on Top: Verifiable Trust
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rnaj58q2mgq26dt0giz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rnaj58q2mgq26dt0giz.png" alt="verifiable trust" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The really cool part? All of this happens with mathematical certainty. When an AI agent processes something in a TEE:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can verify it followed its rules&lt;/li&gt;
&lt;li&gt;You know the data wasn't tampered with&lt;/li&gt;
&lt;li&gt;You can prove the results are legitimate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's like having a notary public for AI decisions!&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrapping Up
&lt;/h3&gt;

&lt;p&gt;The marriage of AI agents and TEEs is like giving digital minds their own secure space to think, grow, and collaborate. It solves some of the biggest challenges in AI adoption: privacy, security, and trust.&lt;/p&gt;

&lt;p&gt;As these technologies mature, we're going to see more and more applications that seemed impossible before. AI agents will be able to handle our most sensitive tasks while keeping our secrets safer than ever.&lt;/p&gt;

&lt;p&gt;The future isn't just about making AI smarter – it's about making it more trustworthy. And TEEs are helping pave the way to that future, one secure computation at a time.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>TEEs</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Thu, 02 Jan 2025 09:02:22 +0000</pubDate>
      <link>https://dev.to/therustfanatic/-17cn</link>
      <guid>https://dev.to/therustfanatic/-17cn</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/therustfanatic" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F573199%2F8af854c1-a8a3-4e48-8311-7322a91da418.png" alt="therustfanatic"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/therustfanatic/tees-the-secret-sauce-making-ethereum-rollups-faster-and-simpler-3h4k" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;TEEs: The Secret Sauce Making Ethereum Rollups Faster and Simpler&lt;/h2&gt;
      &lt;h3&gt;Mahmud eyitoba bello ・ Jan 2&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#rollup&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#evm&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#blockchain&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#zkp&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>blockchain</category>
      <category>ethereum</category>
    </item>
    <item>
      <title>TEEs: The Secret Sauce Making Ethereum Rollups Faster and Simpler</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Thu, 02 Jan 2025 08:53:38 +0000</pubDate>
      <link>https://dev.to/therustfanatic/tees-the-secret-sauce-making-ethereum-rollups-faster-and-simpler-3h4k</link>
      <guid>https://dev.to/therustfanatic/tees-the-secret-sauce-making-ethereum-rollups-faster-and-simpler-3h4k</guid>
      <description>&lt;h2&gt;
  
  
  TEEs: The Secret Sauce Making Ethereum Rollups Faster and Simpler
&lt;/h2&gt;

&lt;p&gt;Remember when you first heard about blockchain scaling and your head started spinning with terms like zero-knowledge proofs and validity proofs? Well, there's a new kid on the block that's making waves in the Ethereum scaling world: Trusted Execution Environments (TEEs). And trust me, this one's actually pretty cool to wrap your head around.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the Big Deal About TEEs?
&lt;/h2&gt;

&lt;p&gt;Imagine you're sending a super important letter. In the traditional world, you might use a notary - someone everyone trusts to verify that everything is legit. TEEs are kind of like having a tiny, super-secure notary built right into your computer's processor. Pretty neat, right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnm6bvlmqq7vfmtj8inf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnm6bvlmqq7vfmtj8inf.png" alt="Diagram 1: Traditional vs TEE Approach" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Does it Actually Work?
&lt;/h2&gt;

&lt;p&gt;Let's break this down into something we can all understand. When you're running a rollup (which is basically a way to bundle lots of Ethereum transactions together), you need to prove that nobody's trying to pull a fast one. Traditionally, this meant using zero-knowledge proofs - super complex math that makes your computer sweat.&lt;/p&gt;

&lt;p&gt;Enter TEEs. They're like having a secure vault inside your processor where you can run code that even you can't mess with. It's like having a tamper-proof room where all your transactions get processed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcq7mnxcp6m7dbefro4di.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcq7mnxcp6m7dbefro4di.png" alt="Diagram 2: Inside a TEE" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This is Actually Pretty Cool
&lt;/h2&gt;

&lt;p&gt;Here's what makes TEEs a game-changer for Ethereum rollups:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Speed Demon&lt;/strong&gt;: Instead of crunching complex math proofs, TEEs just need to generate a simple signature saying "yep, this all checks out!" It's like going from writing a dissertation to just getting a quick notary stamp.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trust Made Simple&lt;/strong&gt;: While you do need to trust the TEE manufacturer (like Intel or AMD), it's a pretty straightforward kind of trust. It's similar to how you trust your phone's secure enclave to handle your fingerprint data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer Friendly&lt;/strong&gt;: Writing code for TEEs is much more straightforward than developing zero-knowledge proofs. It's basically just regular programming with some extra security guarantees.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6fs7muiywps9tv0nvqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6fs7muiywps9tv0nvqy.png" alt="The Verification Process" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real World Impact
&lt;/h2&gt;

&lt;p&gt;When you're actually implementing this in practice, you'd typically use something like Intel SGX or AMD SEV. These are the industrial-strength versions of TEEs that major companies trust with their sensitive data. Your rollup's EVM (the thing that processes Ethereum transactions) runs inside this secure environment, happily crunching away at transactions while the TEE keeps watch.&lt;/p&gt;

&lt;p&gt;The best part? At the end of processing a batch of transactions, the TEE spits out a simple attestation - basically a cryptographic signature saying "I processed everything according to the rules." This gets posted back to Ethereum's main chain, and everyone can quickly verify it's legit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;The TEE approach to rollups is still relatively new, but it's gaining traction fast. While traditional zero-knowledge proof rollups aren't going anywhere, TEEs offer an exciting alternative that might just be the sweet spot between security, performance, and practicality.&lt;/p&gt;

&lt;p&gt;Think of it this way: sometimes the best solutions aren't about inventing completely new math - they're about finding clever ways to use technology we already trust in new and interesting ways. TEEs in rollups are exactly that kind of clever hack, and that's what makes them so exciting for the future of Ethereum scaling.&lt;/p&gt;

</description>
      <category>rollup</category>
      <category>evm</category>
      <category>blockchain</category>
      <category>zkp</category>
    </item>
    <item>
      <title>Proof of work or proof of stake</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Wed, 02 Mar 2022 22:08:32 +0000</pubDate>
      <link>https://dev.to/therustfanatic/proof-of-work-or-proof-of-stake-4fmg</link>
      <guid>https://dev.to/therustfanatic/proof-of-work-or-proof-of-stake-4fmg</guid>
      <description>&lt;h3&gt;
  
  
  Division of a Blockchain
&lt;/h3&gt;

&lt;p&gt;Blockchain , a distributed but robust database of nodes ,is divided into six parts :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OOR Interface: Part for the mapping and delegation resolution using
LISP&lt;/li&gt;
&lt;li&gt;Peer to peer protocol: Protocol used in order to communicate the
multiple nodes in the network.&lt;/li&gt;
&lt;li&gt;Consensus Algorithm(Focus of this report): Algorithm used to
decide, depending on the inputs, who signs a block.&lt;/li&gt;
&lt;li&gt;User input: Module to allow the communication from the user with the
blockchain. Typically a file with transactions to be added.&lt;/li&gt;
&lt;li&gt;Keystore: Storage of the keys.&lt;/li&gt;
&lt;li&gt;Chain persistence: Database structure in which all the data from the
Blockchain will be stored.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our major focus here is the  Consensus algorithm&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Consensus Algorithm ?
&lt;/h2&gt;

&lt;p&gt;A consensus algorithm is a mechanism in computer science theory used to establish agreement on a single data value across distributed processes or systems. A consensus algorithm is a protocol through which all the parties of the blockchain network come to a common agreement (consensus) on the present data state of the ledger and be able to trust unknown peers in a distributed computing environment. Sounds simple .&lt;/p&gt;

&lt;p&gt;For blockchain networks, the consensus algorithms are an essential element because they maintain the integrity and security of these distributed computing systems.&lt;/p&gt;

&lt;p&gt;Proof Of work and proof of Stake are forms of Consensus algorithm&lt;/p&gt;

&lt;h2&gt;
  
  
  Proof Of Work (P.o.W)
&lt;/h2&gt;

&lt;p&gt;The main idea behind proof of work is to work hard in order to demonstrate&lt;br&gt;
the commitment a node has with the network and thus, receiving a reward for&lt;br&gt;
the work done. This is often known as mining.&lt;br&gt;
In Bitcoin, for example, a reward is given to the first node that finds a specific&lt;br&gt;
hash by hashing some information. The correct hash is a SHA-256 string made&lt;br&gt;
by the transactions of the block, the previous block hash and the nonce, which&lt;br&gt;
consists on having a leading number of zero bits. Two of the three parameters&lt;br&gt;
of the SHA-256 hash are static, but one of them, the nonce, is selected by using&lt;br&gt;
brute force, as it is the only known way to find the correct hash.&lt;br&gt;
Proof of work is used nowadays in blockchains because it provides security to the chain as it is very complex to modify old blocks due to the fact that the&lt;br&gt;
valid chain for the vast majority of the nodes is the longest one, i.e. the chain&lt;br&gt;
with more accumulated computing power. This property ensures that data in&lt;br&gt;
old blocks will not be modified, as it requires a hard computational work in&lt;br&gt;
order to generate "by your self" a blockchain longer than the one that is shared&lt;br&gt;
with the rest of the network.&lt;br&gt;
Despite proof of work seems to be secure, there are some drawbacks that should&lt;br&gt;
be mentioned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;about 30% attack: Some research has been done about the problem of having
a group with at least 34% of the hash mining power over the network. Such group could modify the chain and thus turning the blockchain insecure.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Increasing complexity: One of the properties of proof of work blockchains&lt;br&gt;
is that the complexity of mining a block increases over time. This can seen as a strength of the protocol, because it protects the network against new hardware, but it is not. As the complexity increases, there&lt;br&gt;
are only few mining farms1&lt;br&gt;
that can spend enough money to achieve new&lt;br&gt;
specific hardware in order to mine a cryptocurrency. This can lead do a centralization of the mining power, which is contrary to the idea of&lt;br&gt;
decentralization of blockchain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Energy waste: As the complexity of mining a block increases, it is needed&lt;br&gt;
more hashing power, which can be seen as more energy used. This is nowadays the main problem to solve on blockchains, as there are a lot of&lt;br&gt;
cryptocurrencies using proof of work, i.e. wasting a lot of energy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Proof Of Stake (P.o.S)
&lt;/h2&gt;

&lt;p&gt;The basics of this Algorithm is that participants or nodes in the network with&lt;br&gt;
more stake in the blockchain, will be able to add blocks more often. Normally,&lt;br&gt;
for each new expected block, a new signer of the block will be selected, through&lt;br&gt;
random criteria, from the list of participants given its weight, i.e., the amount&lt;br&gt;
of stake they have. With this in mind, the power effort destined to mine a block&lt;br&gt;
is much less compared with PoW, thanks to the no hash power needed.&lt;br&gt;
Although PoS give us the advantage of wasting much less energy than PoW and&lt;br&gt;
some more decentralization, it has some drawbacks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monopoly: The main drawback of PoS algorithms is that a potential
monopoly from the major stakeholders of the network could be possible.
This possibility puts those algorithms at the same level of PoW situation
that should be avoided.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nothing at stake: Regarding any proof-of-work blockchain, in front of a&lt;br&gt;
double-spend attack or in a chain fork&lt;br&gt;
, nodes will have three options to&lt;br&gt;
choose:&lt;/p&gt;

&lt;p&gt;– Follow chain 1 and probably get benefit if chain 1 wins.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;– Follow chain 2 and probably get benefit if chain 2 wins.&lt;/p&gt;

&lt;p&gt;– Do nothing and get no benefit&lt;/p&gt;

&lt;p&gt;Only one of these three options can be chosen, otherwise you would waste&lt;br&gt;
energy mining on the wrong chain, costing you a lot of money in terms of&lt;br&gt;
electricity.&lt;br&gt;
Using the proof of stake protocol, this situation changes. Having in mind&lt;br&gt;
the small cost of energy on creating a block in a PoS environment, you could easily follow the two created chains using less power than a proof-of-work blockchain miner do.&lt;br&gt;
If this situation occurs, the blockchain will have no order and thus be a&lt;br&gt;
chaos. Moreover, if there is more than one unique chain being followed, it&lt;br&gt;
is probable to have more forks, which could cause more chaos.&lt;br&gt;
On the other hand, proof of stake is suitable for us in this aspects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nothing at stake is not worth it in our environment as the major stake-&lt;br&gt;
holders are the most interested in the proper functioning of the chain. In&lt;br&gt;
order to succeed in a nothing at stake attack, a high percentage of the nodes in the network should follow more than one chain when a fork occurs. As the nodes with more stake are the ones interested on a healthy chain, it makes no sense to follow the attack.&lt;br&gt;
Energy is not wasted as it is in proof-of-work blockchains. Typically, the&lt;br&gt;
election of a new signer is made by the use of random criteria and weighted&lt;br&gt;
depending on the stake a node has. So making more attempts per second&lt;br&gt;
do not increase the possibility of being selected as the new signer. Hence,&lt;br&gt;
a reduction in time and energy can be noticed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faster chains are possible by using proof-of-stake algorithms. Without the&lt;br&gt;
need of computing a lot of hashes to find the correct one, is possible to create a chain with a higher rate of block generation. Nowadays, taking Bitcoin as an example of a proof-of-work blockchain, one block is createdevery 10 minutes. This situation is not scalable, so proof of stake offers a&lt;br&gt;
faster way for block creation by reducing the time to chose a new block signer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That seems like a lot , it only gets better......&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Distributed ledger Technology</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Wed, 02 Mar 2022 15:39:07 +0000</pubDate>
      <link>https://dev.to/therustfanatic/distributed-ledger-technology-18hk</link>
      <guid>https://dev.to/therustfanatic/distributed-ledger-technology-18hk</guid>
      <description>&lt;h1&gt;
  
  
  Definition
&lt;/h1&gt;

&lt;p&gt;A distributed ledger is essentially an asset database that can be shared across &lt;br&gt;
a network of multiple sites, geographies or institutions. All participants within &lt;br&gt;
a network can have their own identical copy of the ledger. Any changes to the &lt;br&gt;
ledger are reflected in all copies in minutes, or in some cases, seconds. The &lt;br&gt;
assets can be financial, legal, physical or electronic. The security and accuracy &lt;br&gt;
of the assets stored in the ledger are maintained cryptographically through the use of ‘keys’ and signatures to control who can do what within the shared ledger. &lt;br&gt;
Entries can also be updated by one, some or all of the participants, according to &lt;br&gt;
rules agreed by the network. &lt;br&gt;
DLT comes on the heels of several peer-to-peer (P2P) technologies enabled by the &lt;br&gt;
internet, such as email, sharing music or other media files, and internet telephony. &lt;br&gt;
However, internet-based transfers of asset ownership have long been elusive, as &lt;br&gt;
this requires ensuring that an asset is only transferred by its true owner and ensuring &lt;br&gt;
that the asset cannot be transferred more than once, i.e. no double-spend. The asset in question could be anything of value.&lt;/p&gt;

&lt;h1&gt;
  
  
  Application of DLT
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Cryptocurrency and Bitcoin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Underlying this technology is the ‘block chain’, which was invented to create &lt;br&gt;
the peer-to-peer digital cash Bitcoin in 2008. Block chain algorithms enable &lt;br&gt;
Bitcoin transactions to be aggregated in ‘blocks’ and these are added to a &lt;br&gt;
‘chain’ of existing blocks using a cryptographic signature. The Bitcoin ledger is &lt;br&gt;
constructed in a distributed and ‘permissionless’ fashion, so that anyone can &lt;br&gt;
add a block of transactions if they can solve a new cryptographic puzzle to add &lt;br&gt;
each new block. The incentive for doing this is that there is currently a reward &lt;br&gt;
in the form of twenty five Bitcoins awarded to the solver of the puzzle for each &lt;br&gt;
‘block’. Anyone with access to the internet and the computing power to solve &lt;br&gt;
the cryptographic puzzles can add to the ledger and they are known as ‘Bitcoin &lt;br&gt;
miners’. The mining analogy is apt because the process of mining Bitcoin is &lt;br&gt;
energy intensive as it requires very large computing power. It has been estimated &lt;br&gt;
that the energy requirements to run Bitcoin are in excess of 1GW and may be &lt;br&gt;
comparable to the electricity usage of Ireland.&lt;br&gt;
Bitcoin is an online equivalent of cash&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Government taxation and revenue policies&lt;br&gt;
Distributed ledger technologies have the potential to help governments to &lt;br&gt;
collect taxes, deliver benefits, issue passports, record land registries, assure the &lt;br&gt;
supply chain of goods and generally ensure the integrity of government records &lt;br&gt;
and services. In the NHS, the technology offers the potential to improve health &lt;br&gt;
care by improving and authenticating the delivery of services and by sharing &lt;br&gt;
records securely according to exact rules. For the consumer of all of these &lt;br&gt;
services, the technology offers the potential, according to the circumstances, for &lt;br&gt;
individual consumers to control access to personal records and to know who has &lt;br&gt;
accessed them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;money &amp;amp; Payments &lt;br&gt;
• Payment authorization, clearance &amp;amp; settlement&lt;br&gt;
• International remittances and cross-border payments (alternative to correspondent banking) &lt;br&gt;
• Foreign exchange&lt;br&gt;
• Micropayments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Healthcare &lt;br&gt;
Electronic medical records&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Governance • E-voting systems&lt;br&gt;
• E-Residence&lt;br&gt;
• Government record-keeping, e.g. criminal records&lt;br&gt;
• Reducing fraud and error in government payments&lt;br&gt;
• Reducing tax fraud&lt;br&gt;
• Protection of critical infrastructure against cyberattacks&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Merits of DLTS
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Decentralization and disintermediation. DLT enables direct transfers of digital &lt;br&gt;
value or tokens between two counterparties and decentralized record-keeping, &lt;br&gt;
removing the need for an intermediary or central authority who controls the ledger. &lt;br&gt;
This can translate into lower costs, better scalability and faster time to market.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Greater transparency and easier auditability. &lt;br&gt;
All network members have a &lt;br&gt;
full copy of the distributed ledger (which can be encrypted). Changes can only be made when consensus is established and they are propagated across the entire network in real-time. This feature, combined with the lack of a central authority or limited involvement of a central authority, has the potential to reduce fraud and eliminate reconciliation costs. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automation &amp;amp; programmability. DLT enables programming pre-agreed &lt;br&gt;
conditions that are automatically executed once certain conditions hold. This is &lt;br&gt;
referred to as “smart contracts” (see section 8), for example invoices that pay &lt;br&gt;
themselves when a shipment arrives or share certificates which automatically &lt;br&gt;
send owners dividends or cash-for-work programs that pay beneficiaries out &lt;br&gt;
once the contracted work is completed. Smart contracts can be done in traditional &lt;br&gt;
centralized ledger systems as well, but the design of centralized ledger systems &lt;br&gt;
requires such actions to be implemented only after the concerned parties have &lt;br&gt;
agreed to the underlying transaction as recorded in the central system, which in &lt;br&gt;
some contexts can take upwards of a day. In contrast, in a DLT, the counterparties &lt;br&gt;
by definition agree the moment the transaction is completed, as both have the &lt;br&gt;
same record of the transaction. Also, the result of the execution of the “smart contract” itself will take additional time to propagate and be reconciled in a traditional ledger system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Immutability &amp;amp; verifiability. &lt;br&gt;
DLT can provide an immutable and verifiable &lt;br&gt;
audit trail of transactions of any digital or physical asset. While in most cases, &lt;br&gt;
immutability is desirable, it can create problems related to recourse mechanisms if the system fails. Immutability of the ledger, however, does not mean that a countervailing transaction to annul a disputed transaction cannot be created. This is in line with how dispute &lt;br&gt;
resolution works, for example in payment card systems. The original record would, however, in this case still remain. Two MIT researchers have recently filed a patent for a cryptographic solution &lt;br&gt;
that would allow an administrator to ‘unlock’ units &lt;br&gt;
in a blockchain and edit them, though this is highly &lt;br&gt;
controversial as immutability is seen as one of the core advantages of the first blockchains.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gains in speed and efficiency. &lt;br&gt;
DLT offers &lt;br&gt;
the potential of increasing speed and lowering &lt;br&gt;
inefficiencies by removing or reducing frictions in &lt;br&gt;
transactions or in clearing and settlement processes &lt;br&gt;
by removing intermediaries and automating &lt;br&gt;
processes. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Cost reductions. &lt;br&gt;
DLT offers the potential for &lt;br&gt;
significant cost reductions due to removing the &lt;br&gt;
need for reconciliation as DLT-based systems by &lt;br&gt;
definition contain the “shared truth” and hence there &lt;br&gt;
is no need to reconcile one version of “truth” with &lt;br&gt;
that of one’s counterparties. Additional sources of &lt;br&gt;
cost reduction could be lower infrastructure costs for &lt;br&gt;
maintaining a DL, as well as reductions in frictions &lt;br&gt;
and fraud. According to some estimates, distributed &lt;br&gt;
ledger technology could save the financial industry &lt;br&gt;
alone around $15-20 billion per year.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Enhanced cybersecurity resilience.
DLT has the 
potential to provide a more resilient system than 
traditional centralized databases and offer better 
protection against different types of cyber attacks 
because of its distributed nature, which removes 
the single point of attack.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenges associated with DLT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Privacy: In permissionless ledgers, such as Bitcoin &lt;br&gt;
and Ethereum, all transactions are open and visible &lt;br&gt;
to all network members, though they can be &lt;br&gt;
encrypted and the identity of the user is hidden. In &lt;br&gt;
certain contexts, the identity of the participant can &lt;br&gt;
be inferred based on transaction patterns or other &lt;br&gt;
markers. Permissioned DLs encounter the same &lt;br&gt;
issue. This is one of the key concerns of applying &lt;br&gt;
DLT to financial market infrastructures and it is one &lt;br&gt;
of the issues which CORDA and Fabric propose to &lt;br&gt;
address in their design.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Environmental costs. 
Using proof-of-work as a 
consensus mechanism creates a large electricity 
footprint as vast amounts of computing processing 
power are used up for “mining”. (This concern 
mainly applies to permissionless blockchains that 
use proof-of-work protocols.)&lt;/li&gt;
&lt;li&gt;Bleeding Edge/Lack of Maturity.
DLT remains at an early stage of development 
and there are still serious concerns about the robustness and resilience of DLT 
especially for large volume transactions, availability of standardized hardware 
and software applications, and also ample supply of skilled professionals. 
However, large traditional IT players like IBM and Microsoft, as well as 
financial sector players like Visa and MasterCard have started developing DLT 
products and services, which could eventually provide the same level of trust 
and confidence as traditional IT systems offer today.&lt;/li&gt;
&lt;li&gt;Scalability and Transaction Speed. 
Current iterations of permissionless 
distributed ledgers face issues related to scalability of blockchains, both in 
terms of transaction volume and speed of verifications. Existing permissionless 
blockchains have limited transaction speed. Bitcoin, for example, can only 
process between 4-7 transactions per second due to the limitation of the block 
size at one megabyte, a subject of controversy in the bitcoin community. (Block 
size could be increased but bigger blocks would take longer to propagate 
through the network, worsening the risks of forking.) This problem, however, 
could be resolved over time and is most pronounced in the Bitcoin system. 
Other permissionless DLT systems like Ethereum report higher transaction 
throughputs. In addition, permissioned blockchains have greater capacity and 
can process higher transaction volumes but these lack global scale and come at the expense of a more centralized, less transparent platform, which removes 
many of the benefits from the distributed, open nature of public DLT systems.&lt;/li&gt;
&lt;li&gt;Interoperability and Integration. 
Different DLT 
systems will need to be interoperable with other 
ledgers and integrated with existing systems if 
they are to be introduced at scale into the financial 
system. In addition, the cost of integrating DLT 
into financial infrastructures like payment and 
settlement systems will require industry wide co-
ordination and collaboration and require significant 
expenses. There are efforts underway to develop 
DL frameworks specifically for the financial 
sector, notably the CORDA framework by R3 
CEV and Fabric by Hyperledger project. These 
two frameworks are an effort to address specific 
requirements raised by industry practitioners in 
areas such as: 
• allowing transactions between counterparties 
in a peer-to-peer manner; need for validating 
identity of counterparties; 
• limiting visibility of transactions on a need-to-
know basis; need for regulators to have access 
to transactions; 
• ensuring equivalence between smart contracts 
and actual legal prose; 
• using existing industry standard software tools; 
• interfaces between multiple distributed ledgers; 
and 
• supporting a variety of consensus models, 
including one approach of just having the 
transacting counterparties participate in the 
consensus. 
These frameworks, in essence, explore using 
DL approaches within prevailing business and 
regulatory practices. CORDA is specifically 
focused on the financial sector whereas 
Hyperledger seeks to provide a broader framework 
with initial applications proposed for the financial 
sector and for supply chain management.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Blockchain and web 3.0</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Wed, 02 Mar 2022 15:34:51 +0000</pubDate>
      <link>https://dev.to/therustfanatic/blockchain-and-web-30-3bb7</link>
      <guid>https://dev.to/therustfanatic/blockchain-and-web-30-3bb7</guid>
      <description>&lt;p&gt;Web 3.0 is the third generation of internet services which provide websites and applications with the technology to run. Web 3.0 is set to be powered by AI and peer-to-peer applications like blockchain. The key difference between Web 2.0 and Web 3.0 is that Web 3.0 is more focused on using innovative technologies like machine learning and AI to create more personalized content for each user. It is also expected that Web 3.0 will be more secure than its predecessors because of the system it is built upon. &lt;/p&gt;

&lt;p&gt;The Web3 has set out to break up the market power of these centralized players by replacing the centralized server-client infrastructure with distributed ledgers, the most common type being the blockchain. So instead of all data being stored on a centralized server, it will be scattered across a decentralized computer network. Centralized entities, which previously acted as intermediaries, will thus become obsolete.&lt;/p&gt;

&lt;p&gt;Here is an example: Anyone sending money from one bank to another today uses the centralized servers of the respective banking providers. The banks act as intermediaries by carrying out the transaction. The user must hand over all the data to the banks involved and rely on them to execute the transaction correctly. The bank, of course, charges a fee for this service. This is Web2 banking.&lt;/p&gt;

&lt;p&gt;In Web3 you can send your transaction via a decentralized blockchain such as the Bitcoin blockchain. This blockchain independently verifies the accuracy of the transaction through the use of mathematics and computing power. Unlike Web2, banks are no longer needed as intermediaries. That also means the user retains control over their data, and since there is no centralized actor making money from the transaction, there are no fees to pay.&lt;/p&gt;

&lt;p&gt;In other words, Web3 should return data sovereignty and ownership rights to the user – that's at least the idea.&lt;/p&gt;

&lt;p&gt;"The ownership element is the key difference between Web 2.0, the current iteration of the internet, and web3,” said Shaun Heng, vice president and chief of staff at CoinMarketCap. &lt;/p&gt;

&lt;h3&gt;
  
  
  So What is Blockchain .
&lt;/h3&gt;

&lt;p&gt;Blockchains are made up of blocks that store information. Each block has a unique “hash” that differentiates it from other blocks. These blocks are then connected by a chain in chronological order. The information stored in these blocks is permanent, which makes it a very secure way to complete online transactions. &lt;/p&gt;

&lt;p&gt;This is why cryptocurrencies, like Bitcoin, are built on blockchain technology. Blockchain gives cryptocurrencies the platform and security they need to work. These blocks, or records are stored on online servers, which are publicly accessible, but only by you or anyone else who the block has been shared with.   &lt;/p&gt;

&lt;h2&gt;
  
  
  How do They Work Together?
&lt;/h2&gt;

&lt;p&gt;Blockchain serves as the foundation of Web 3.0; Web 3.0 would not be possible without the systems provided by blockchain. The enhanced security and privacy offered with blockchain is something that the developers of Web 3.0 are using to appeal to internet users. Since blockchain is a decentralized system, there is no single point of control that could be easily hacked. For Web 3.0, this means that individual websites and the internet, in general, would be much more secure against attacks. Users would not have to worry about their information being deleted or compromised. Together, Web 3.0 and blockchain will allow for better cryptocurrency trading and mining.  &lt;/p&gt;

&lt;h1&gt;
  
  
  Examples of Web 3.0 Technologies
&lt;/h1&gt;

&lt;p&gt;Examples of companies already using Web 3.0 AI technology include Apple with Siri and Amazon through Alexa. Both companies are using voice-controlled AI to give consumers real-time answers to their questions. Web 3.0 would expand the reach of internet access to everyone at any time. Amazon has also taken steps to integrate smart devices, which fall under the category of Web 3.0, into their Alexa products. With smart devices, a user can communicate with or control multiple devices from their phone or with their voice. But the most talked-about Web 3.0 technology that is already in use is cryptocurrency like Bitcoin. &lt;/p&gt;

&lt;p&gt;Now you see that there are differences between web3 and blockchain technology, see you next time , when I talk about distributed ledger technology``&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>Learning solidity and rust for web 3.0</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Fri, 28 Jan 2022 16:04:03 +0000</pubDate>
      <link>https://dev.to/therustfanatic/learning-solidity-and-rust-for-web-30-8ef</link>
      <guid>https://dev.to/therustfanatic/learning-solidity-and-rust-for-web-30-8ef</guid>
      <description>&lt;p&gt;Just yesterday , I had a discussion on the projections that are viewed to be the fruit of web 4.0 , &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;haven't seen that , you can check it out here&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mahmudsudo.hashnode.dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So to understand the assertions that my projections in my previous posts might be achieved in web 3.0 itself , I decided to get my hands dirty with solidity and rust and smart contracts which are the foundations of web 3.0, if you wanna try out this path also you can signify in the comments section and let's share ideas .&lt;/p&gt;

&lt;p&gt;Since Rust is an intersection between C++ and Java so I can pick up in no time.&lt;/p&gt;

&lt;p&gt;I gave myself a duration of 6 weeks due to me having an examination by February ,&lt;br&gt;
See you on the other side..... &lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is next after web 3.0 ?</title>
      <dc:creator>Mahmud eyitoba bello</dc:creator>
      <pubDate>Fri, 28 Jan 2022 10:40:42 +0000</pubDate>
      <link>https://dev.to/therustfanatic/what-is-next-after-web-30--16hj</link>
      <guid>https://dev.to/therustfanatic/what-is-next-after-web-30--16hj</guid>
      <description>&lt;h1&gt;
  
  
  The Genesis of the web
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4cpxgecjdykze2oxqp7l.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4cpxgecjdykze2oxqp7l.jpeg" alt="images (6).jpeg" width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WEB 1.0 (read-only web)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2wr2x9igzhwuyl6yguyb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2wr2x9igzhwuyl6yguyb.jpeg" alt="images (3).jpeg" width="259" height="194"&gt;&lt;/a&gt;&lt;br&gt;
In the early 90s , Berners Lee started the  read-only web also known as web 1.0,which was just a content delivery network (CDN) with one-way traffic. &lt;/p&gt;

&lt;h2&gt;
  
  
  WEB 2.0 (social web)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnaj1e85u82cnvvbylqe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnaj1e85u82cnvvbylqe.png" alt="download.png" width="234" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmiv0rzajh25obkckptga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmiv0rzajh25obkckptga.png" alt="download (2).png" width="262" height="192"&gt;&lt;/a&gt;&lt;br&gt;
Barely two decades later in the fall of 2004 , the social web was introduced ,this is the web 2.0 which promotes web availability,cloud usage and two-way interaction at most with speculations of reaching a level of data security.&lt;/p&gt;

&lt;h2&gt;
  
  
  WEB 3.0 (semantic web / decentralized web)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulj5n7w5qne2fr8d2t3n.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulj5n7w5qne2fr8d2t3n.jpeg" alt="download (2).jpeg" width="225" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2z9y89z8g145ya4z8d4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2z9y89z8g145ya4z8d4.jpeg" alt="download (3).jpeg" width="300" height="168"&gt;&lt;/a&gt;&lt;br&gt;
Moving on to 2016 , the almighty semantic web was born, with number visions ranging from linked data and block chain development to decentralized systems , this earned it the name "decentralized web". With the few hiccups associated with the semantic web ,web development as we set is projected to undergo serious changes in its offerings and basic understanding.&lt;/p&gt;

&lt;p&gt;This brings us to the big rhetoric , What's next after web 3.0 ? Can you guess ?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It is web 4.0&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj952uxlmzkvx7r8knl5l.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj952uxlmzkvx7r8knl5l.jpeg" alt="download.jpeg" width="318" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  The emotional web / The smart web / The ubiquitous web /
&lt;/h1&gt;

&lt;p&gt;There are numerous projections and predictions on the supposed use case for web 4.0&lt;br&gt;
Ranging from IOT on the web to AI and self learning web to smart web . One thing common to all these predictions is the awkward incitement and use of AI and bots which are already a part of the unity web( web 2.0), this usage of Artificial intelligence would help with search engines on the web and helps in reducing human involvement in the decentralized world of the web  . The web hasn't seen such advancement before and this would also incorporate the use of metaverse.&lt;br&gt;
Apart from the IOT , the &lt;br&gt;
 emotional neutrality of web 3 is alternated in web 4.0 i.e there is daily emotional support and communication  between users and web ,this would also need incorporating different programming languages and different use cases.&lt;/p&gt;

&lt;p&gt;Web 4.0 services will be autonomous, proactive, content-exploring, self-learning, collaborative, and content-generating agents based on fully matured semantic and reasoning technologies as well as AI. They will support adaptive content presentation that will use the Web database via an intelligent agent.&lt;br&gt;
Web 4.0 is a new evolution of the Web paradigm based on multiple models, technologies and social relationships. The concept of Web 4.0 is not totally clear and unanimous in literature, because it is composed by several dimensions. In this sense&lt;/p&gt;

&lt;p&gt;That sounds huge right, Tune In for more updates...... &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
