Start Learning Rust programming language

Start Learning Rust programming language

Intro Rust is a modern programming language that focuses on thread-safety and performance. Unlike in many higher-level programming languages, there is neither a garbage collection nor a virtual machine in Rust. Instead, Rust addresses known problems of long-established low-level programming languages such as C or C++. At the same time, the programming language is known for its steep learning curve, which makes many developers shy away from delving into Rust. We provide four reasons to show that Rust, despite its complexity, has benefits that will make your work (and live) with the language easier. ...

December 3, 2022 · 1 min · Vadzim Belski
Crypto billing system, Monitoring transactions and derrive addresses in Rust for Bitcoin, Ethereum, Solana and Polkadot

Crypto billing system, Monitoring transactions and derrive addresses in Rust for Bitcoin, Ethereum, Solana and Polkadot

Intro Great weekend for great research followup. This article is about how to implement billing system different crypto currencies using Rust pogramming language. Before getting deeper into the details of implementation o would like to define what is standing under the term “billing system” for crypto currencies. Crypto Billing system is a software that us used to organize crypto payments in your organization. It is designed to create derevative addresses (one time payment addresses) and monitor incoming transactions executing business logic for your organization. Typically the scenario could be the following: ...

December 2, 2022 · 9 min · Vadzim Belski

Awesome golang books list for inspiration and education

Credits to this github repo! Books Starter Books Advanced Books Web Development Resources Books Starter Books The Little Go Book Free The Little Go Book is a free introduction to Google’s Go programming language. It’s aimed at developers who might not be quite comfortable with the idea of pointers and static typing. It’s longer than the other Little books, but hopefully still captures that little feeling. An Introduction to Programming in Go Free This book is a short, concise introduction to computer programming using the language Go. Designed by Google, Go is a general purpose programming language with modern features, clean syntax and a robust well-documented common library, making it an ideal language to learn as your first programming language. ...

December 2, 2022 · 29 min · Vadzim Belski

Full token standrads for blockchain

Intro I collected of all token related standards proposed for the Ethereum network. This list can be used as note to recap and used during architecturing of the blockchain software. This list can be used compile solutions based on standards, many of the standards proposed by Ethereum developers and community and already have been implemented in Solidity. List of Ethereum Tokens Standards ERC-20 : Standard Fungible Token (EIP-20) Standard API for fungible tokens, including transfer and balance tracking functionalities. ...

November 25, 2022 · 10 min · Vadzim Belski
The foreign function interface to call Rust library from Golang

The foreign function interface to call Rust library from Golang

Intro Imagin that you have a project written in C/C++ or even Rust and you would like to call functions from this project library in your Golang application. Wonderful thign is that there is a solution for that called FFI. A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written in another. The primary function of a foreign function interface is to mate the semantics and calling conventions of one programming language (the host language, or the language which defines the FFI), with the semantics and conventions of another (the guest language). This process must also take into consideration the runtime environments and/or application binary interfaces of both. This can be done in several ways: ...

August 24, 2022 · 6 min · Vadzim Belski
The Dining Philosophers Problem

The Dining Philosophers Problem

Intro I would like to share classical problem with philosophers. This classic problem shows the various elements of parallelism. The complexity of the implementation of the task lies in the fact that a simple implementation can go into a hopeless state. The problem is defined like this: In ancient times, wealthy philanthropists invited five eminent philosophers to visit. Each of them was given a room in which they could engage in their professional activity—thinking. There was also a common dining room, where there was a large round table, and five chairs around it. Each chair had a plaque with the name of the philosopher who was supposed to sit on it. To the left of each philosopher was a golden fork, and in the center of the table was a large bowl of spaghetti, which was constantly replenished. As befits philosophers, they spent most of their time in thought. But one day they felt hungry and went to the dining room. Everyone sat down on their chair, took a fork and stuck it into the bowl of spaghetti. But the nature of tangled spaghetti is such that a second fork is needed to push the spaghetti into the mouth. That is, the philosopher also needed a fork to his right. The philosophers put down their forks and got up from the table, continuing to think. After all, the fork can only be used by one philosopher at a time. If another philosopher wants to take it, then he will have to wait until she is released. ...

August 16, 2022 · 8 min · Vadzim Belski
Software Design principles

Software Design principles

Intro Any architectect and software developer should be aware of and follow best practeces established by many generations of software developers. This article is a recap of the best practices and the most important ones for software developers. Whenever you came to interview with me - you should definitely read this article and know by heart many of the principles. Design principles A brief overview over common design principles SOLID Single Responsibility Principle (SRP): A class should only have a single responsibility, that is, only changes to one part of the software’s specification should be able to affect the specification of the class. Open/Closed Principle (OCP): “Software entities … should be open for extension, but closed for modification.” Liskov Substitution Principle (LSP): “Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” Interface Segregation Principle (ISP): “Many client-specific interfaces are better than one general-purpose interface.” Dependency Inversion Principle (DIP): One should “depend upon abstractions, [not] concretions.” DRY (Don’t Repeat Yourself) “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system” ...

July 29, 2022 · 3 min · Vadzim Belski
Bitcoin - crearing raw transactions

Bitcoin - crearing raw transactions

Intro I was interested on how to write Bitocoin automation and during of implementation of the project I found out that I need to write raw transactions. This looks interesting as it give an overview on bitcoin protocol internals, knowledge on how it works gives possibility to understand deeper the internals. Creating a Raw Transaction This allows you to send money but to craft the transactions as precisely as you want. This first section focuses on a simple one-input, one-output transaction. This sort of transaction isn’t actually that useful, because you’re rarely going to want to send all of your money to one person (unless you’re actually just forwarding it on, such as if you’re moving things from one wallet to another). Thus, we don’t label this section as a way to send money. It’s just a foundational stepping stone to actually sending money with a raw transaction. ...

June 30, 2022 · 11 min · Vadzim Belski
Solana SPL tokens

Solana SPL tokens

Intro I was interested how Solana blockchain is structured. Basically how to create own ERC20 and ERC721 token analog in Solana. My findings show that Solana provides ready to use implementation for Fingible and Nonfingible tokens. Comparing to Ethereum and other blockchain platforms, Solana is more flexible and has more features. Smart Contracts are also available in Solana. I will try to cover all the features of Solana. Solana Programs Smart Contracts in Solana called as Programs. Programs are usually written on C++ or Rust prograaming languages. I will focus on Rust programming language because i want myself to dive deep into Rust language. There not much difference in terms of how Smart contracs deployed on Solana and Ethereum, you will get similair use eperience using platfom tools for deployment on both blockchain networks. However, there are some differences in how programs are written. ...

June 30, 2022 · 8 min · Vadzim Belski
Bitcoin addresses monitoring for incoming transactions

Bitcoin addresses monitoring for incoming transactions

Intro Let’s take a look a specific use-case. If a user is sending bitcoin to my bitcoin address, how can I keep track the status of the transaction, for example, when the user send the coins and when the transaction gets confirmed? The solution is the system will generate a unique address for every user who is trying to send bitcoin. And the system will listen any transactions in the network, which related to this address. ...

June 9, 2022 · 3 min · Vadzim Belski