Bitcoin Forum
May 06, 2024, 09:17:34 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Blockchain Development Mega Guide  (Read 339 times)
kasscrypto (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 2


View Profile
January 30, 2020, 04:54:46 PM
Last edit: January 30, 2020, 05:33:17 PM by kasscrypto
Merited by odolvlobo (1), ABCbits (1)
 #1

The blockchain learning ecosystem has changed a lot since I first started. So I thought I'd share some of the cool sh*t I've either created or found on the web.  

The Mega Guide
Blockchain Development Mega Guide (Medium)

Free courses
These are about understanding more than programming but... It's a decent start.

Blockchain Technology - Berkley
Bitcoin and Blockchain - Khan Academy
Cryptography Course - Stanford
Blockchain Fundamentals - Plural sight
Blockchain Principles and Practices - Plural sight
Hyperledger Blockchain Technologies - Linux Foundation
Introduction to FinTech - Hong Kong University

Resources

How to become a blockchain developer
I don't know why they chose javascript to demonstrate lol, but otherwise, this is a solid guide!

https://asecuritysite.com/encryption
Site is kinda ugly, but packed with information about cryptography, with demonstrations and code.

https://en.bitcoin.it/wiki/Category:Developer
The bitcoin wiki developer page.


What the Guides don't tell you...
There are a good few things these guides don't tell you. These aren't hard concepts but are often glossed over or replaced with a more convenient learning example.

...about mining
In practice, mining isn't really about looking for a hash starting with serval '0' bits. Mining actually requires finding a hash that has a numerical value is less than a target hash (this results in a number of '0' bits). That target hash can be calculated from the difficulty. Bitcoin wiki page on difficulty.

pseudo code:
Code:
hash = sha256(block)
if big_endian(hash) < big_endian(target_hash):
  mined = true

...about adjusting difficulty
Difficulty must be adjusted to keep up with the changing hash rate of the network (to keep a block time of say 10 mins). The easiest way is to adjust the current target based on how much faster or longer it took to mine X blocks.

pseudo code:
Code:
target_hash = big_endian(diff_to_target(difficulty))
quotient = epoch_duration / expected_duration
new_target_hash = target_hash * quotient

difficulty = target_to_diff(new_target_hash)

I will add more to this when I get a chance
Happy Coding
1714987054
Hero Member
*
Offline Offline

Posts: 1714987054

View Profile Personal Message (Offline)

Ignore
1714987054
Reply with quote  #2

1714987054
Report to moderator
1714987054
Hero Member
*
Offline Offline

Posts: 1714987054

View Profile Personal Message (Offline)

Ignore
1714987054
Reply with quote  #2

1714987054
Report to moderator
"Governments are good at cutting off the heads of a centrally controlled networks like Napster, but pure P2P networks like Gnutella and Tor seem to be holding their own." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
odolvlobo
Legendary
*
Offline Offline

Activity: 4298
Merit: 3214



View Profile
January 31, 2020, 07:22:09 PM
Merited by n0nce (1)
 #2

This is also a good resource:

https://bitcoin.org/en/developer-guide

Join an anti-signature campaign: Click ignore on the members of signature campaigns.
PGP Fingerprint: 6B6BC26599EC24EF7E29A405EAF050539D0B2925 Signing address: 13GAVJo8YaAuenj6keiEykwxWUZ7jMoSLt
tromp
Legendary
*
Offline Offline

Activity: 978
Merit: 1087


View Profile
February 12, 2020, 04:34:24 PM
 #3

...about mining
In practice, mining isn't really about looking for a hash starting with serval '0' bits. Mining actually requires finding a hash that has a numerical value is less than a target hash (this results in a number of '0' bits).

There's more to mining than hashing:

http://cryptorials.io/beyond-hashcash-proof-work-theres-mining-hashing/
DaCryptoRaccoon
Hero Member
*****
Offline Offline

Activity: 1202
Merit: 580


OGRaccoon


View Profile
February 12, 2020, 05:44:54 PM
Merited by n0nce (1)
 #4

Another good way to visualize what is going on in the mining process it to have a look at the mining simulator.

https://yogh.io/#mine:last

This gives a good overview of how the process works in a visual manner. 

The source code is also available on github

https://github.com/yogh-io/bitcoin-transaction-explorer

┏━━━━━━━━━━━━━━━━━┓
┃   💎 Mine Solo with CKPool 💎    ┃
┃    ➤ Hit Blocks on Your Own!      ┃
┃ ███▓▓  ███▓▓  ███▓▓  ███▓▓┃
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!