Przejdź do głównej zawartości

Python bsv-sdk: jak zacząć z Bitcoin SV

Bitcoin SV w Pythonie

Bitcoin SV (BSV) to blockchain o bardzo niskich opłatach i ogromnej skalowalności, ale co najważniejsze - dzięki oficjalnej bibliotece bsv-sdk dla Pythona, możesz zacząć z nim pracować bez potrzeby zagłębiania się w meandry protokołu, formatów binarnych czy struktury transakcji. W tym wpisie przeprowadzę Cię od absolutnych podstaw: instalacji, generowania kluczy, pracy z adresami, uzupełnienie go w testnecie, aż po zbudowanie i wysłanie pierwszej transakcji. Później połączymy nasz kod z nieco starszą biblioteką pythona do bsv oraz  wykorzystamy interfejsy API, żeby sprawdzać saldo, historię transakcji, rozgłaszać transakcję w sieci lub dodawać dane tekstowe do transakcji tzw. OP_RETURN. Zobaczysz wtedy w czym tkwi potencjał tego niezwykłego blockchaina i jak wypada na tle innych.

python bitcoin sv bsv-sdk


Poradnik jest kierowany do osób technicznych, ale zakładam tylko podstawową znajomość Pythona. Resztę omówimy na bieżąco.

Co musisz wiedzieć, zanim zaczniesz

Zanim w ogóle odpalimy Pythona, warto przypomnieć trzy absolutnie podstawowe pojęcia:
  • Klucz prywatny – tajna liczba, która „kontroluje” środki. Zwykle zapisuje się go w formacie WIF, wygląda jak długi ciąg znaków zaczynający się od litery L lub K np.: KyEox4cjFbwR5Jz7FcnYZ96cR7JXvC88J5K5N3M4L5P8Q2R3S4T5V
  • Klucz publiczny – matematycznie wyliczany z klucza prywatnego.
  • Adres – skrót z klucza publicznego, czyli to, co podajesz komuś żeby dostać BSV.
Schemat jest prosty: | Klucz prywatny ➔ klucz publiczny ➔ adres

Bitcoin (BSV) opiera się na modelu UTXO (Unspent Transaction Output) - niewydanych wyjść transakcji. Brzmi technicznie, ale idea jest niezwykle prosta:
  • każda transakcja zużywa stare UTXO (czyli wejścia),
  • tworzy nowe UTXO (czyli wyjścia).
Możesz myśleć o tym jak o sieci cyfrowych monet: nie modyfikujesz starych, tylko zawsze tworzysz nowe, a poprzednie "zużywasz". To właśnie na UTXO będziemy pracować, gdy zaczniemy budować transakcje w Pythonie i chyba wtedy najbardziej zrozumiesz na czym ten model polega 👊 
Spójrz na transakcję TUTAJ, zobacz że 3 takie same adresy, wydaja środki na 2 identyczne adresy; w bitcoinie musisz odrzucić klasyczne rozumienie transakcji jak w modelu konta (np. bankowe). 

Instalacja: Python + bsv-sdk

Krok 1: Zainstaluj Python

Jeśli Python nie jest zainstalowany:

  1. Pobierz z python.org
  2. Zainstaluj (zaznacz "Add Python to PATH")
  3. Sprawdź wersję
  4. Otwórz terminal/wiersz poleceń i wpisz: python --version
  5. Powinno pokazać coś takiego: Python 3.12.0

Krok 2: Zainstaluj BSV SDK

SDK to biblioteka - zbiór gotowych funkcji do pracy z BSV.
 
Instalacja:
  1. Otwórz terminal i wpisz: pip install bsv-sdk
  2. Czekaj, aż się zainstaluje
  3. Sprawdź czy SDK jest zainstalowany
  4. W otwartym terminalu wpisz python
  5. Gdy pojawi się >> wpisz: import bsv
  6. A następnie: print(bsv.__version__)
  7. Powinno pokazać coś takiego: 1.0.10

Pierwszy kod - generowanie klucza

  1. Zaimportuj bilbiotekę: from bsv import PrivateKey
  2. Utwórz klucz prywatny: moj_klucz = PrivateKey()
  3. Możesz go wypisać: print(moj_klucz)
  4. Możesz wypisać sam wif: print(moj_klucz.wif())
Przykład pkt 1-3: (mój przykład jest w terminalu)

Przykład pkt 4: (mój przykład jest w terminalu)
 
Pełny kod:
from bsv import PrivateKey

# Utwórz nowy klucz prywatny
moj_klucz = PrivateKey()

# Wyświetl klucz
print("Mój klucz prywatny (WIF):", moj_klucz.wif())
 
Skopiuj/Zapisz sobie klucz prywatny gdzieś do notatnika, bo zaraz użyjemy go ponownie. W prawdziwej aplikacji nie będziesz wpisywał WIF do formularza - przechowasz go w zmiennych środowiskowych, plikach konfiguracyjnych, itd. Na tym etapie nauki, możemy go sobie nawet wpisać od razu do zmiennej, żeby rozumieć, co się dzieje.

Pobierz klucz publiczny i adres Bitcoin

Krok 1: Pobierz klucz publiczny

Masz już swój klucz prywatny, to teraz wyprowadzimy z niego klucz publiczny i adres publiczny, cały czas działamy na poprzednim pliku.
  1. Utwórz zmienną tekstową i wpisz klucz prywatny: pk = "L3LQ7qvruqKc......." 
  2. Uzupełnij argument PrivateKey: moj_klucz = PrivateKey(pk
  3. Zadeklaruj zmienną klucza publicznego: klucz_publiczny = moj_klucz.public_key()
  4. Wypisz klucz publiczny: print(klucz_publiczny.hex())
Pełny kod:
from bsv import PrivateKey

pk = "L3LQ7qvruqKc......." # <-- Wstaw swój klucz w formacie wif

# Utwórz nowy klucz prywatny
moj_klucz = PrivateKey(pk)

# Wyświetl klucz
print("Mój klucz prywatny (WIF):", moj_klucz.wif())
klucz_publiczny = moj_klucz.public_key()
 
# Wyświetl klucz publiczny
print("Mój klucz publiczny:", klucz_publiczny.hex())
 

Krok 2: Pobierz adres

Teraz sprawdzisz jak wygląda Twój adres Bitcoin w sieci testowej (testnet) i głównej (mainnet).
 
  1. Zadeklaruj zmienną: adres_testnet = moj_klucz.address(network = "testnet")
  2. Zadeklaruj zmienną adres_mainnet = moj_klucz.address(network = "mainnet")
  3. Wypisz: print("Adres testnet :", adres_testnet)
  4. Wypisz: print("Adres mainnet :", adres_mainnet)

Pełny kod:

from bsv import PrivateKey

pk = "L3LQ7qvruqKc......." # <-- Wstaw swój klucz w formacie wif

# Utwórz nowy klucz prywatny
moj_klucz = PrivateKey(pk)

# Wyświetl klucz
print("Mój klucz prywatny (WIF):", moj_klucz.wif())
klucz_publiczny = moj_klucz.public_key()
 
# Wyświetl klucz publiczny
print("Mój klucz publiczny:", klucz_publiczny.hex())

# Sprawdź i wyswietl swoje adresy
adres_testnet = klucz_prywatny.address(network = "testnet")
adres_mainnet = klucz_prywatny.address(network = "mainnet")
print("Adres testnet :", adres_testnet)
print("Adres mainnet :", addres_mainnet) 

Adres testnet możesz sprawdzić tutaj: https://test.whatsonchain.com/
Adres mainnet możesz sprawdzić tutaj: https://whatsonchain.com/
 
Gratulacje! Masz już swój klucz prywatny i znasz swój adres Bitcoin SV. Ale jak się upewnić, że wszystko działa poprawnie, zanim wyślesz prawdziwe środki na mainnecie? Najlepiej zacząć od sieci testowej (testnet), gdzie możesz zdobyć darmowe, testowe BSV i ćwiczyć bez ryzyka. Testnet to oddzielna sieć, która działa tak jak mainnet (prawdziwa sieć BSV), ale monety na testnecie nie mają wartości i służą wyłącznie do testów i nauki programowania. 
 
To gdzie zdobyć testowe Bitcoiny?
Istnieją specjalne tzw. "faucety" - strony, które dają małe ilości testowych monet, abyś mógł zasilić swój adres i eksperymentować.
 
Jedyne co musisz zrobić to:
  1. Wejść na stronę: https://scrypt.io/faucet/ 
  2. Wpisać swój adres TESTNET i kliknąć GET BSV 😄
  3. Sprawdzić ponownie saldo adresu testowego https://test.whatsonchain.com/

Co dalej?

W kolejnym wpisie pokażę Ci krok po kroku, jak pobrać transakcję z niewydanym UTXO i uzyskać z niego hex przy użyciu Pythona, bsv-sdk i API whatsonchain.

 


Jeśli moje wpisy przypadły Ci do gustu i chcesz wesprzeć rozwój bloga, możesz postawić mi wirtualną kawę (GGwallet czeka!). Oczywiście, to całkowicie dobrowolne - blog i tak zawsze będzie dostępny za darmo. Dzięki za każde wsparcie, nawet to w formie dobrej energii! ☕😊



 **Gwarantuję Ci niezmienność moich treści**

Hash artykułu:

ID transakcji: sprawdź OP_RETURN i porównaj jego hash

Komentarze

Prześlij komentarz

Popularne posty

Discord kontra Forum – dlaczego Twój mózg tęskni za phpBB

Cyfrowy minimalizm - mniej pingów, więcej spokoju

Not Your Keys? – Krypto, Prawo i Wielkie Nieporozumienie