<?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: Yucked</title>
    <description>The latest articles on DEV Community by Yucked (@yucked).</description>
    <link>https://dev.to/yucked</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%2F283436%2Fccf82428-63fc-4a51-83a0-ea0bbd787ff0.jpg</url>
      <title>DEV Community: Yucked</title>
      <link>https://dev.to/yucked</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yucked"/>
    <language>en</language>
    <item>
      <title>🚀 Dev Research Project!</title>
      <dc:creator>Yucked</dc:creator>
      <pubDate>Wed, 20 May 2020 21:32:32 +0000</pubDate>
      <link>https://dev.to/yucked/dev-research-project-5e0m</link>
      <guid>https://dev.to/yucked/dev-research-project-5e0m</guid>
      <description>&lt;h3&gt;
  
  
  &lt;code&gt;Info!&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;In my fall 2019 semester (meant to be my last but became 2nd last), I applied for Undergrad research and worked on researching how blockchain works. My part of the research was to implement a simple yet functional blockchain that demonstrates the basics of it. It was a definitely a challenge considering I was taking 18 credits and had little room for another semester long project but worth it! &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;Demo Link&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The demo link can be found on &lt;code&gt;http://localhost:5000/&lt;/code&gt;! You will notice the webpage will say &lt;em&gt;Unable to connect :(&lt;/em&gt; and you read that right! You will need to fork the project from GitHub and follow the setup process to run it: &lt;a href="https://github.com/Yucked/Breadloaf#%EF%B8%8F-setup"&gt;https://github.com/Yucked/Breadloaf#%EF%B8%8F-setup&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;Link to Code&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The code can be found on GitHub, it is by no means a finished or polished product.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yucked"&gt;
        Yucked
      &lt;/a&gt; / &lt;a href="https://github.com/Yucked/Breadloaf"&gt;
        Breadloaf
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🍞 - Breadloaf is a .NET implementation of a Blockchain on Blazor server.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
    &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/82f20a97dec4a7be36789871787fcdb98c73e9a3/68747470733a2f2f692e696d6775722e636f6d2f34584f4e7162652e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/82f20a97dec4a7be36789871787fcdb98c73e9a3/68747470733a2f2f692e696d6775722e636f6d2f34584f4e7162652e706e67" width="20%"&gt;&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="https://discord.gg/ZJaVXK8" rel="nofollow"&gt;
        &lt;img src="https://camo.githubusercontent.com/151a35ac6d963b1729a141337b6d9dafd4ba1fdf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446973636f72642d537570706f72742d2532333732383944412e7376673f6c6f676f3d646973636f7264267374796c653d666f722d7468652d6261646765266c6f676f57696474683d3230266c6162656c436f6c6f723d306430643064"&gt;
    &lt;/a&gt;
    &lt;a href="http://buymeacoff.ee/Yucked" rel="nofollow"&gt;
        &lt;img src="https://camo.githubusercontent.com/16de71d151f7e160f5647fcd2a00dd718a6feae0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275792532304d65253230412d436f666665652d2532334646383133462e7376673f6c6f676f3d6275792d6d652d612d636f66666565267374796c653d666f722d7468652d6261646765266c6f676f57696474683d3230266c6162656c436f6c6f723d306430643064"&gt;
    &lt;/a&gt;
    &lt;a href="https://dev.azure.com/Yucked/Builds/_build?definitionId=5" rel="nofollow"&gt;
        &lt;img src="https://camo.githubusercontent.com/86761e55aa9a8c13bdb964122cf4e853e7a32002/68747470733a2f2f696d672e736869656c64732e696f2f617a7572652d6465766f70732f6275696c642f7975636b65642f32343331333933382d393066372d343830332d613263342d3366353439333132396334332f353f636f6c6f723d253233434232453644266c6162656c3d4275696c64253230537461747573266c6f676f3d617a7572652d706970656c696e6573266c6f676f436f6c6f723d253233323536304530267374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d313331333133266c6f676f57696474683d3230"&gt;
    &lt;/a&gt;
    &lt;/p&gt;
&lt;p&gt;
         🍞 - Breadloaf is a .NET implementation of a Blockchain on Blazor server
  &lt;/p&gt;

&lt;h2&gt;
&lt;code&gt;📚 BACKGROUND:&lt;/code&gt;
&lt;/h2&gt;
&lt;p&gt;This project is part of my undergrad research I did at my college on &lt;strong&gt;Discovering Blockchain Technology&lt;/strong&gt;. To demonstrate how Blockchain works, I decided to build an application with these capabilities in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is console based&lt;/li&gt;
&lt;li&gt;Has some sort of UI (Web Pages)&lt;/li&gt;
&lt;li&gt;Fast &amp;amp; easy to understand&lt;/li&gt;
&lt;li&gt;Cross platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ideally, ASP.NET Core would have done it but Blazor is something new that I've been wanting to try out for some time but the websocket aspect of it poses a problem to have a fully functional Blockchain application.&lt;/p&gt;
&lt;h2&gt;
&lt;code&gt;⚗️ SETUP:&lt;/code&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To run this project make sure you have .NET Core Hosting Bundle installed on your machine
.NET Core 3.1 can be downloaded from here: &lt;a href="https://dotnet.microsoft.com/download/dotnet-core/3.1" rel="nofollow"&gt;DOWNLOAD&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once installed, open a command prompt or powershell in the project directory and run &lt;code&gt;dotnet run&lt;/code&gt; to run the…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yucked/Breadloaf"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  &lt;code&gt;How I built it?&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;You ask an amazing question, wizard! It took me sometime to decide on what language/framework I wanted to use. For language it was either going to be C# or Python but since I'm a sucker for C# so yeah... that was a no brainer for me. &lt;/p&gt;

&lt;p&gt;Next up was the application design and framework. Initially, I went with a simple .NET Core console application but once I realized I was going to be presenting to an audience that may not understand what my console is outputting, it became crucial for me to have some sort of visuals in my application.&lt;/p&gt;

&lt;p&gt;Just around that time, Blazor was popping up and I thought hmmmm. Yes, all it took was a hmmmm and I moved everything to Blazor.&lt;/p&gt;

&lt;p&gt;So, now my project breakdown was as follow:&lt;br&gt;
&lt;code&gt;Breadloaf.Models:&lt;/code&gt; Everything regarding my "blockchain".&lt;br&gt;
&lt;code&gt;Breadloaf:&lt;/code&gt; Where Blazor and Models come together in harmony.&lt;br&gt;
&lt;code&gt;tests:&lt;/code&gt; Testing models to make sure they do what I need them to do.&lt;/p&gt;

&lt;p&gt;Blazor is essentially ASP.NET Core MVC template with additional stuff added.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sHlzIhJZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/plrzr46olel4hhkgtdl0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sHlzIhJZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/plrzr46olel4hhkgtdl0.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So anyway, I started blasting. Bulma came to the rescue and I started designing. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The main page with my research abstract.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qP1xmnLT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v4jf2s9bxjl4j6uocpex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qP1xmnLT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v4jf2s9bxjl4j6uocpex.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explaining what a block is and let's you generate blocks.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eIc5OV3N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lv8sm8urgz84n2sbaoc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eIc5OV3N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lv8sm8urgz84n2sbaoc3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visualizing the whole chain.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P9H0RtK---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5jxkw6wdoyf9v36agzcx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P9H0RtK---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5jxkw6wdoyf9v36agzcx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I was able to visualize my project and I'm proud of it! The only thing left was to create some sort of P2P and that's where everything went downhill. Since, Blazor supports SignalR and encourages using that, I just wanted plain WebSocket's without much hassle.&lt;/p&gt;

&lt;p&gt;Luckily, at the time of writing this I have figured out a way to use &lt;code&gt;ConnectEndpointRouteBuilderExtensions#MapConnectionHandler&amp;lt;T&amp;gt;()&lt;/code&gt;. Perhaps, I'll get back to finishing it once I finish rest of my never ending projects unless... I come up with more project ideas and none of them can be finished 😩.&lt;/p&gt;

&lt;p&gt;I'm not exactly sure why Azure pipelines never built my project🤔🤔.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;Final Note:&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Pbt6TuGQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j0pcozncia49l3d2w8lx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pbt6TuGQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j0pcozncia49l3d2w8lx.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

</description>
      <category>devgrad2020</category>
      <category>octograd2020</category>
      <category>githubsdp</category>
    </item>
  </channel>
</rss>
