<?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: Iliias Baiyshev</title>
    <description>The latest articles on DEV Community by Iliias Baiyshev (@iliiasik).</description>
    <link>https://dev.to/iliiasik</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%2F3405343%2F3fbb4a36-ed7d-4e69-ae7c-c5852a6ba041.jpeg</url>
      <title>DEV Community: Iliias Baiyshev</title>
      <link>https://dev.to/iliiasik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iliiasik"/>
    <language>en</language>
    <item>
      <title>Graphical Blockchain demonstration in Go using Fyne</title>
      <dc:creator>Iliias Baiyshev</dc:creator>
      <pubDate>Fri, 01 Aug 2025 11:10:10 +0000</pubDate>
      <link>https://dev.to/iliiasik/graphical-blockchain-demonstration-in-go-using-fyne-3hpb</link>
      <guid>https://dev.to/iliiasik/graphical-blockchain-demonstration-in-go-using-fyne-3hpb</guid>
      <description>&lt;h2&gt;
  
  
  Ever wanted to see how &lt;em&gt;blockchain&lt;/em&gt; works instead of just reading about it?
&lt;/h2&gt;

&lt;p&gt;I built a GUI-based blockchain simulator in Go, using the Fyne toolkit – cross-platform, clean, and native-feeling.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This project is open for you to use in your personal work — whether that means improving it, customizing it, or reusing the core logic in your own blockchain-related projects.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🔗 GitHub: &lt;a href="https://github.com/Iliiasik/Blockchain" rel="noopener noreferrer"&gt;https://github.com/Iliiasik/Blockchain&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About
&lt;/h2&gt;

&lt;p&gt;Recently, I decided to dive deeper into how &lt;strong&gt;blockchains&lt;/strong&gt; work under the hood. Since I'm a Go developer, I naturally chose Go as the language for this journey.&lt;/p&gt;

&lt;p&gt;I found an excellent tutorial and repository by Jeiwan:&lt;br&gt;&lt;br&gt;
🔗 &lt;a href="https://jeiwan.net/posts/building-blockchain-in-go-part-1/" rel="noopener noreferrer"&gt;Part 1: Building Blockchain in Go&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;a href="https://github.com/Jeiwan/blockchain_go" rel="noopener noreferrer"&gt;GitHub: jeiwan/blockchain_go&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a great theoretical resource that I highly recommend. However, the code has become outdated — some parts don't work with modern Go versions, and there were several bugs.&lt;/p&gt;

&lt;p&gt;For example, I completely rewrote the block serialization/deserialization logic. The original version used &lt;code&gt;gob&lt;/code&gt;, which caused the &lt;strong&gt;proof-of-work to break after restarting&lt;/strong&gt; the app because it serialized the data inconsistently each time. That’s just one of many such issues I had to fix.&lt;/p&gt;

&lt;p&gt;While testing the CLI version, I realized it wasn’t very intuitive for learning purposes. So I decided to build a &lt;strong&gt;GUI&lt;/strong&gt; to visualize how the blockchain operates, making it easier for others to explore and understand the core concepts.&lt;/p&gt;

&lt;p&gt;✅ Fixed all bugs&lt;br&gt;&lt;br&gt;
✅ Added extra features&lt;br&gt;&lt;br&gt;
✅ Built a cross-platform UI using &lt;a href="https://fyne.io/" rel="noopener noreferrer"&gt;Fyne&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This project is the result. A visual, educational blockchain demo — built with Go, for anyone curious about how blockchains work.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;This project helps you visualize and interact with core blockchain concepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Block structure and hashes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mining with adjustable difficulty&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UTXO-based transactions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;P2P simulation: forks, node syncing, and more&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How to try it
&lt;/h2&gt;

&lt;p&gt;Option 1: Clone and run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/Iliiasik/Blockchain.git
cd Blockchain
go run main.go
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Option 2: Install with fyne&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Install the fyne CLI tool (if you don't have it yet)
go install fyne.io/tools/cmd/fyne@latest

# Install the Blockchain app via fyne
fyne install github.com/Iliiasik/Blockchain@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go 1.18+ &lt;/li&gt;
&lt;li&gt;GCC (for OpenGL via Fyne)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interface
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Main blockchain view
&lt;/h2&gt;

&lt;p&gt;A visual representation of blocks, transactions, and Proof-of-Work.&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%2F2ol82ahg4ez9d6xgmk08.gif" 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%2F2ol82ahg4ez9d6xgmk08.gif" alt="readme-part-1" width="720" height="537"&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%2Fgithub.com%2Fuser-attachments%2Fassets%2F529f43ba-5d78-4580-94c0-ce1e6ae3ed0a" 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%2Fgithub.com%2Fuser-attachments%2Fassets%2F529f43ba-5d78-4580-94c0-ce1e6ae3ed0a" alt="readme-part-2" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  P2P network simulation
&lt;/h2&gt;

&lt;p&gt;Illustrates node discovery, block propagation, and forks in a peer-to-peer environment.&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%2Fgithub.com%2Fuser-attachments%2Fassets%2F966e18a2-e259-47ab-a187-268ab39a314e" 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%2Fgithub.com%2Fuser-attachments%2Fassets%2F966e18a2-e259-47ab-a187-268ab39a314e" alt="readme-part-3" width="720" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>blockchain</category>
      <category>gui</category>
      <category>fyne</category>
    </item>
  </channel>
</rss>
