Bitcoin Forum
February 29, 2020, 07:58:55 AM *
News: Latest Bitcoin Core release: 0.19.0.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Blockchain Development Mega Guide  (Read 135 times)
kasscrypto
Newbie
*
Offline Offline

Activity: 5
Merit: 1


View Profile
January 30, 2020, 04:54:46 PM
Last edit: January 30, 2020, 05:33:17 PM by kasscrypto
Merited by odolvlobo (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
1582963135
Hero Member
*
Offline Offline

Posts: 1582963135

View Profile Personal Message (Offline)

Ignore
1582963135
Reply with quote  #2

1582963135
Report to moderator
1582963135
Hero Member
*
Offline Offline

Posts: 1582963135

View Profile Personal Message (Offline)

Ignore
1582963135
Reply with quote  #2

1582963135
Report to moderator
1582963135
Hero Member
*
Offline Offline

Posts: 1582963135

View Profile Personal Message (Offline)

Ignore
1582963135
Reply with quote  #2

1582963135
Report to moderator
AWARD-WINNING
CRYPTO CASINO
ASKGAMBLERS
PLAYERS CHOICE 2019
PROUD
PARTNER OF
1500+
GAMES
2 MIN
CASH-OUTS
24/7
SUPPORT
100s OF
FREE SPINS
PLAY NOW
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
odolvlobo
Legendary
*
Offline Offline

Activity: 2786
Merit: 1498



View Profile
January 31, 2020, 07:22:09 PM
 #2

This is also a good resource:

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

Buy stuff on Amazon at a discount with bitcoins or convert Amazon points to bitcoins: Purse.io
Join an anti-signature campaign: Click ignore on the members of signature campaigns.
tromp
Hero Member
*****
Online Online

Activity: 634
Merit: 553


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/
MagicByt3
Sr. Member
****
Offline Offline

Activity: 462
Merit: 314


Buy BTC


View Profile
February 12, 2020, 05:44:54 PM
 #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

Custom Bitcointalk .999 Silver Bars
[Now Sold]
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!