Bitcoin Forum
April 14, 2021, 10:56:19 PM *
News: Latest Bitcoin Core release: 0.21.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: Lightning Network - ogólna dyskusja  (Read 575 times)
malevolent
can into space
Moderator
Legendary
*
Offline Offline

Activity: 2898
Merit: 1544



View Profile
January 25, 2021, 07:52:02 PM
 #21

Pierwsza z  największych gield kryptowalut, OK coin ogłosiła wprowadzenie obsługi  Lightning Network!

Pierwszy był Bitfinex w 14 miesięcy temu:

https://support.bitfinex.com/hc/en-us/articles/360039801053-Lightning-Network-BTC-LNX-Deposits-Withdrawals
https://www.bitfinex.com/posts/440
https://ln.bitfinex.com/

Opłaca się coś takiego w ogóle stawiać?

Scentralizowane tak:
https://lightningnetworkstores.com/

Ze zdecentralizwanych z LN coś takiego kojarzę, ale nie korzystałem no i nie jest to BTC:
https://bitcointalk.org/index.php?topic=2078449

1618440979
Hero Member
*
Offline Offline

Posts: 1618440979

View Profile Personal Message (Offline)

Ignore
1618440979
Reply with quote  #2

1618440979
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1618440979
Hero Member
*
Offline Offline

Posts: 1618440979

View Profile Personal Message (Offline)

Ignore
1618440979
Reply with quote  #2

1618440979
Report to moderator
1618440979
Hero Member
*
Offline Offline

Posts: 1618440979

View Profile Personal Message (Offline)

Ignore
1618440979
Reply with quote  #2

1618440979
Report to moderator
1618440979
Hero Member
*
Offline Offline

Posts: 1618440979

View Profile Personal Message (Offline)

Ignore
1618440979
Reply with quote  #2

1618440979
Report to moderator
cygan
Legendary
*
Offline Offline

Activity: 2030
Merit: 1683


in crypto we trust - start hodl.exe


View Profile
January 26, 2021, 04:30:20 PM
Merited by Rath_ (1)
 #22

...

Na sam początek mogę polecić Wam portfel BlueWallet...


poszukałem trochę więcej w necie i udało mi się znaleźć te portfele wspierane przez lightning network:

  • Lightning Labs 👉 portfel dla full nodes i mobilnych portfeli
  • ACINQ 👉 oferuje znane portfele eclair (desktop) und eclair-mobile (mobile)
  • Thor (od bitrefill) 👉 portfel, który może łatwo budować kanały przez bitrefill
  • Electrum 👉 prawdopodobnie najpopularniejszy portfel desktopowy z funkcjonalnością lightning, aczkolwiek dość ograniczony do tej pory

.freebitcoin.       ▄▄▄█▀▀██▄▄▄
   ▄▄██████▄▄█  █▀▀█▄▄
  ███  █▀▀███████▄▄██▀
   ▀▀▀██▄▄█  ████▀▀  ▄██
▄███▄▄  ▀▀▀▀▀▀▀  ▄▄██████
██▀▀█████▄     ▄██▀█ ▀▀██
██▄▄███▀▀██   ███▀ ▄▄  ▀█
███████▄▄███ ███▄▄ ▀▀▄  █
██▀▀████████ █████  █▀▄██
 █▄▄████████ █████   ███
  ▀████  ███ ████▄▄███▀
     ▀▀████   ████▀▀
BITCOIN
DICE
EVENT
BETTING
WIN A LAMBO !

.
            ▄▄▄▄▄▄▄▄▄▄███████████▄▄▄▄▄
▄▄▄▄▄██████████████████████████████████▄▄▄▄
▀██████████████████████████████████████████████▄▄▄
▄▄████▄█████▄████████████████████████████▄█████▄████▄▄
▀████████▀▀▀████████████████████████████████▀▀▀██████████▄
  ▀▀▀████▄▄▄███████████████████████████████▄▄▄██████████
       ▀█████▀  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  ▀█████▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.PLAY NOW.
Rath_
aka BitCryptex
Legendary
*
Online Online

Activity: 1274
Merit: 1837


Write @Rath or quote my post to notify me


View Profile WWW
January 27, 2021, 05:24:36 PM
Merited by malevolent (1)
 #23


Akurat portfel Lightning Labs nie jest już wspierany od końca zeszłego roku. Phoenix jest dobrą alternatywą na telefony z Androidem dla osób, które chcą mieć trochę większą kontrolę nad kanałami.


To akurat nie jest portfel, a usługa, która pozwala wynająć kanał przychodzący na 30 dni. W momencie gdy otwierasz kanał do kogoś, to nie masz możliwości otrzymywania monet przez ten kanał, bo wszystkie dostępne środki w tym kanale znajdują się po Twojej stronie. Żeby móc w ogóle otrzymywać płatności przy użyciu Lightning Network, to musisz mieć chociaż jeden kanał ze środkami, które w jakiejś części znajdują się po stronie drugiego uczestnika kanału. W kanałach przychodzących, wszystkie środki od początku znajdują się po stronie drugiego uczestnika, więc możliwe jest otrzymywanie płatności, jeżeli ktoś posiada taki kanał (pod warunkiem, że osoba wysyłająca monety będzie w stanie znaleźć ścieżkę do tego kanału).

Zarządzanie kanałami jest bardzo skomplikowane, dlatego początkującym polecam BlueWallet, który bierze to na siebie.

adamvp
Hero Member
*****
Offline Offline

Activity: 1162
Merit: 708



View Profile
January 27, 2021, 07:42:36 PM
Merited by Rath_ (2)
 #24


Zarządzanie kanałami jest bardzo skomplikowane, dlatego początkującym polecam BlueWallet, który bierze to na siebie.
Paczam sobie  tego Blue Walleta;
Mam tam takie cos:
lndhub://ciag_znakow:xxxxxxxxx
Czy to służy jako backup?
Oraz pkt 2. Aby w ogole zaczac tego uzywac musze doladowac swoj kanal tak?
Widze, ze adres ma po prostu format bech32 ? A czy ktos w ramach LN moze mi przesłać srodki wczesniej?


Ok widze, ze komunikaty z walleta sa lekko mylace, udalo mi sie zrobic invoice.
Wyglada to tak:

Code:
lnbc1u1psprsklpp5vg3h3msrrz4p43dnqjhvpdcfegcxpgka57rwpgvvvhxrlm42esgqdqdgf6xxhm5v9kxkcqzpgxqyz5vqsp5k6zyrhwhwu6wlcppqg3y3lftcfrshe4k7gynr0af3fslqd04tfzq9qy9qsqjrp36qrgx250jjrjkwjetvmzgzupthf9xmv3x8efd6nnefnh0kp9pf654njxdwz7v3474xsj3eua9zy2td2rjdkjlpplcjeg46xwzscpe8e8nr

Czy wchodząc na to widac rowniez tytul przelewu, ktory ustawilem, czy jest to tylko informacja dla mnie?

I am looking for signature campaign Wink pm me
Rath_
aka BitCryptex
Legendary
*
Online Online

Activity: 1274
Merit: 1837


Write @Rath or quote my post to notify me


View Profile WWW
January 27, 2021, 09:22:47 PM
Merited by malevolent (2), adamvp (1)
 #25

lndhub://ciag_znakow:xxxxxxxxx
Czy to służy jako backup?

Tak. Jest to backup, który w tym momencie może być przywrócony tylko w BlueWallet.

Oraz pkt 2. Aby w ogole zaczac tego uzywac musze doladowac swoj kanal tak?
Widze, ze adres ma po prostu format bech32 ? A czy ktos w ramach LN moze mi przesłać srodki wczesniej?

W przypadku BlueWallet, nie musisz się martwić kanałami, więc powinieneś być móc w stanie otrzymywać płatności bez wcześniejszego doładowania portfela Lightning. Jeżeli chcesz doładować ten portfel, to wystarczy, że wyślesz transakcję na podany adres bech32.

Czy wchodząc na to widac rowniez tytul przelewu, ktory ustawilem, czy jest to tylko informacja dla mnie?

Tytuł przelewu jest zakodowany w tym invoice. Jest on widoczny dla każdej osoby, która go dostanie. Spróbuj wkleić swój invoice na tej stronie i zobaczysz jakie jeszcze inne informacje jesteś w stanie z niego wyciągnąć. Nie usunąłeś może przypadkiem tego portfela? Z chęcią opłacę ten invoice, żebyś mógł się pobawić.

adamvp
Hero Member
*****
Offline Offline

Activity: 1162
Merit: 708



View Profile
January 27, 2021, 09:35:53 PM
 #26

lndhub://ciag_znakow:xxxxxxxxx
Czy to służy jako backup?

Tak. Jest to backup, który w tym momencie może być przywrócony tylko w BlueWallet.
Kolejna rzecz do zapisania, masakra, w sumie liczyłem trochę, że będę mógł wykorzystać mnemonica z jakiegoś innego mało używanego walleta...
No ale z drugiej strony, plus jest taki, że się z niczym nie pomyli Wink
Aczkolwiek tutaj pytanie: co się stanie w takim razie z moim portfelem w razie jak BlueWallet zniknie? Czy jest inny sposób wykonania backupu?
Czy w ogóle może wtedy środki znikną w ogóle?
Oraz pkt 2. Aby w ogole zaczac tego uzywac musze doladowac swoj kanal tak?
Widze, ze adres ma po prostu format bech32 ? A czy ktos w ramach LN moze mi przesłać srodki wczesniej?

W przypadku BlueWallet, nie musisz się martwić kanałami, więc powinieneś być móc w stanie otrzymywać płatności bez wcześniejszego doładowania portfela Lightning. Jeżeli chcesz doładować ten portfel, to wystarczy, że wyślesz transakcję na podany adres bech32.
Ten podany adres jest adresem kanału? Czy ja przelewając tam środki otwieram kanał? Czy jak to wygląda?

Czy wchodząc na to widac rowniez tytul przelewu, ktory ustawilem, czy jest to tylko informacja dla mnie?

Tytuł przelewu jest zakodowany w tym invoice. Jest on widoczny dla każdej osoby, która go dostanie. Spróbuj wkleić swój invoice na tej stronie i zobaczysz jakie jeszcze inne informacje jesteś w stanie z niego wyciągnąć. Nie usunąłeś może przypadkiem tego portfela? Z chęcią opłacę ten invoice, żebyś mógł się pobawić.

Byłoby miło, z góry dzięki i w ogóle dzięki za próby pomocy w ogarnianiu LN ;-)

I am looking for signature campaign Wink pm me
Rath_
aka BitCryptex
Legendary
*
Online Online

Activity: 1274
Merit: 1837


Write @Rath or quote my post to notify me


View Profile WWW
January 27, 2021, 09:54:15 PM
Merited by adamvp (1)
 #27

Aczkolwiek tutaj pytanie: co się stanie w takim razie z moim portfelem w razie jak BlueWallet zniknie? Czy jest inny sposób wykonania backupu?
Czy w ogóle może wtedy środki znikną w ogóle?

Nie ma żadnego innego sposobu. Zwróć uwagę na to, że BlueWallet jest portfelem typu custodial (jeżeli chodzi o środki off-chain). Oznacza to, że środki są pod ich pełną kontrolą. Takie rozwiązanie ma masę minusów, ale w zamian dostajesz portfel, który bezproblemowo pozwala Ci na korzystanie z Lightning Network. Po prostu wysyłasz monety na odpowiedni adres i nie przejmujesz się tym ile kanałów i do kogo powinieneś otworzyć oraz czy będziesz w stanie odebrać od kogoś płatność.

W przypadku zwykłego portfela Lightning wygląda to trochę inaczej. Przykładowo, Electrum tworzy backupy kanałów, które pozwalają wyłącznie na ich bezpieczne zamknięcie w celu odzyskania monet. Jest to najlepsze rozwiązanie. Zakładając, że dałoby się wykonać taki backup kanału, że po jego przywróceniu można by nadal korzystać z kanału, to jeżeli byś przywrócił przypadkowo stary backup, to drugi uczestnik mógłby automatycznie zamknąć kanał poprzez rozesłanie karnej transakcji ("penalty transaction"), która pozbawiłaby Cię wszystkich środków.

Ten podany adres jest adresem kanału? Czy ja przelewając tam środki otwieram kanał? Czy jak to wygląda?

Nie, ten adres po prostu należy do BlueWallet. Mają zapewne kilka swoich węzłów, które są całkiem nieźle połączone z resztą sieci poprzez masę kanałów o różnej wielkości. Przesyłając środki na ich adres zawierasz z nimi umowę, że dostaniesz ich równowartość do wydania przez ich węzły.

W przypadku zwykłych portfeli Lightning, środki trafiają bezpośrednio na adres kanału, który po odpowiedniej liczbie potwierdzeń transakcji zostaje otwarty.

Byłoby miło, z góry dzięki i w ogóle dzięki za próby pomocy w ogarnianiu LN ;-)

Opłacone bez problemów w mniej niż sekundę. Pytaj śmiało o co chcesz Wink

wwzsocki
Legendary
*
Offline Offline

Activity: 1624
Merit: 1484


First 100% Liquid Stablecoin Backed by Gold


View Profile WWW
January 28, 2021, 04:51:23 AM
 #28

Z tego co widzę, to Lightning Network jest jeszcze lata świetlne od masowej adopcji.

Jeżeli nie powstaną jakieś łatwe w użyciu apki, które bezproblemowo będą pozwalały na otwieranie kanałów i przesyłanie BTC, to jeszcze jest jakaś szansa.

Czytam waszą dyskusję i nie jeden by się już poddał w połowie tej operacji. cholernie skomplikowane, mało informacji.

Nawet już wprawieni w bojach, jak @Adamvp, napotykają na problem za problemem.

Dobrze, że Bitcoin dał sobie radę i pomimo, że LN zupełnie nie spełniło pokładanych w nim oczekiwań, to cena idzie do góry, a kapitalizacja bije rekordy.

vjudeu
Member
**
Offline Offline

Activity: 122
Merit: 60


View Profile
January 28, 2021, 08:05:11 AM
Merited by Rath_ (3), malevolent (2)
 #29

Quote
Z tego co widzę, to Lightning Network jest jeszcze lata świetlne od masowej adopcji.
To prawda, sieć LN to nadal jeden wielki eksperyment, zanim to wszystko okrzepnie, to minie trochę czasu. No i też spodziewam się, że będzie taki problem, jak z Bitcoinem, to znaczy zawsze to będzie kwestia szukania balansu pomiędzy wygodą a bezpieczeństwem. Odpalanie własnego HUBa będzie podobne do posiadania własnego pełnego węzła, zapewni pełną kontrolę nad wszystkim, no ale byle Kowalski tego nie użyje, bo to będzie za trudne. Natomiast większość pewnie będzie trzymać środki w jakichś serwisach, gdzie twórcy aplikacji będą sami zarządzać kanałami. Z jednej strony fajnie, a z drugiej to już wtedy nie jest takie do końca P2P, bo wtedy sporo zależy od tego, na ile sensownie taki serwis będzie tymi kanałami zarządzał.

Quote
Czytam waszą dyskusję i nie jeden by się już poddał w połowie tej operacji. cholernie skomplikowane, mało informacji.
Bo to się dopiero rozwija, to jest nadal w powijakach. Działa, ale żeby to wszystko obsłużyć, to trzeba trochę w tym pogrzebać i trochę o tym poczytać, aby coś sensownego uzyskać. Chociaż to też zależy od tego, czego oczekujesz. Bo zwykle nie trzeba sobie zapisywać jakichś dziwnych cyferek, tylko się skanuje kod QR i gotowe. Natomiast jeśli coś nie działa, no to warto odczytać sobie taki kod QR i zobaczyć, co w trawie piszczy. Bo wiesz, zakładając, że na przykład dwie osoby używają Phoenix wallet, no to jedna generuje kod QR, druga go skanuje i jak wszystko idzie dobrze, to przelew wchodzi. Także to nie jest aż tak skomplikowane, kwestia tego, co chcesz zrobić.

Quote
Dobrze, że Bitcoin dał sobie radę i pomimo, że LN zupełnie nie spełniło pokładanych w nim oczekiwań, to cena idzie do góry, a kapitalizacja bije rekordy.
BTC on-chain działać musi, choćby po to, aby dało się otwierać i zamykać kanały, tego nie przeskoczysz. Natomiast jeśli mempool będzie częściej zapchany, to niejako wymusi przerzucenie się na LN, bo w końcu ludzie stwierdzą, że on-chain fee jest za wysokie. Z drugiej strony, masowa adopcja LN może sprawić, że górnicy mniej na tym zyskają (bo będzie mniej transakcji on-chain) i wtedy mempool może się odkorkować, żeby jednak zachęcić ludzi do przesuwania monet on-chain. Jakby nie patrzeć, górnicy BTC zarabiają na LN tylko przy otwieraniu lub zamykaniu kanałów, cała reszta monet leci w kanałach, całkowicie ich pomijając.

Także cóż, to wszystko to kwestia balansu: wygoda czy bezpieczeństwo? Gdzieś granicę musisz postawić, żeby nie iść w skrajną wygodę (banki) i w skrajne bezpieczeństwo (jest tak bezpiecznie, że aż sam ledwo to odbezpieczasz). No i też część problemów wynika po prostu z tego, że różne portfele działają różnie. Z czasem pewnie to się jakoś ustandaryzuje, na razie to miejscami jest po prostu wolna amerykanka, bo ludzie eksperymentują z różnymi rozwiązaniami i próbują ustalić, co jest w porządku, a czego przeciętny Kowalski nie ogarnie.
adamvp
Hero Member
*****
Offline Offline

Activity: 1162
Merit: 708



View Profile
January 28, 2021, 09:54:22 AM
 #30

Z tego co widzę, to Lightning Network jest jeszcze lata świetlne od masowej adopcji.

Jeżeli nie powstaną jakieś łatwe w użyciu apki, które bezproblemowo będą pozwalały na otwieranie kanałów i przesyłanie BTC, to jeszcze jest jakaś szansa.

Czytam waszą dyskusję i nie jeden by się już poddał w połowie tej operacji. cholernie skomplikowane, mało informacji.

Nawet już wprawieni w bojach, jak @Adamvp, napotykają na problem za problemem.

Dobrze, że Bitcoin dał sobie radę i pomimo, że LN zupełnie nie spełniło pokładanych w nim oczekiwań, to cena idzie do góry, a kapitalizacja bije rekordy.


Bez przesady, sam mechanizm jest  dobry, natomiast mnie zmylil troche interfejs tego portfela (sprzeczne komunikaty), no i pozny wieczór to też nie jest najlepsza pora  na rozkminianie nowosci :p
Na poprzedniej stronie masz info o integracji LN przez gielde OKcoin, więc mysle, ze jestesmy dosłownie o krok od mainstreamowej integracji Wink

I am looking for signature campaign Wink pm me
garlonicon
Newbie
*
Offline Offline

Activity: 27
Merit: 42


View Profile
January 28, 2021, 01:36:03 PM
Merited by Rath_ (10), malevolent (7), o_e_l_e_o (2), adamvp (1)
 #31

Żeby dobrze zrozumieć sieć Lightning Network, warto zacząć od podstaw, czyli od tego, w jaki sposób Lightning Network wygląda on-chain. Sama koncepcja bierze się stąd, że przetwarzanie wszystkich możliwych transakcji przez wszystkie pełne węzły zostało uznane za niewydajne i niepotrzebne. Jak łatwo zauważyć, mempool potrafi się zapchać, rozmiar oczekujących transakcji dochodzi do nawet ponad stu bloków naprzód, co sprawia, że opłaty stale rosną, bo ludzie nie chcą czekać w nieskończoność na pierwsze potwierdzenie.

Z tego powodu powstał pomysł utworzenia kanałów płatności, dzięki czemu dowolne dwa podmioty mogłyby wymieniać się monetami bez konieczności każdorazowego wykonywania transakcji on-chain. Założenie jest takie, że na początku dwie strony blokują swoje monety na wspólnym adresie 2-of-2 multisig (co powoduje otwarcie kanału), a następnie obie strony tworzą transakcję wydającą współdzielone monety z powrotem na osobne adresy (co powoduje zamknięcie kanału).

Portfel Bitcoin Core oprócz głównej sieci (mainnet) oraz sieci testowej (testnet), umożliwia także uruchomienie lokalnej sieci testowej (regtest), gdzie samodzielnie można tworzyć całkowicie dowolne transakcje. Umożliwia to sprawdzenie, co jest, a co nie jest możliwe w Bitcoinie oraz oswojenie się z tymi monetami bez konieczności ryzykowania od razu prawdziwych pieniędzy.

Aby odpalić sieć regtest, należy uruchomić klienta Bitcoin Core z poziomu konsoli, podając odpowiedni argument:
Code:
bitcoin-qt -regtest
To powinno wystarczyć, przy starcie powinniśmy ujrzeć jasnoniebieski kolor zamiast pomarańczowego oraz napis "regtest" w tytule okna. Od razu możemy zauważyć, że jesteśmy daleko w tyle za siecią, Genesis Block jest gdzieś w roku 2011 zamiast 2009, a nasz klient z nikim się nie łączy i nie pobiera żadnych bloków z sieci. Tutaj sami jesteśmy górnikami i możemy generować do 15 tysięcy monet zamiast 21 milionów, co powinno wystarczyć nam do wszelakich zastosowań. Otwórzmy więc konsolę (Window -> Console lub domyślnie CTRL+T) i wygenerujmy nowy adres:
Code:
getnewaddress
bcrt1qxae40vjtrtzu4cy3tnswf6xmpk3rlg7k5uqynk
Skoro już mamy swój adres, to możemy coś wykopać, w regteście trudność jest minimalna i umożliwia tworzenie setek bloków na sekundę:
Code:
generatetoaddress 101 bcrt1qxae40vjtrtzu4cy3tnswf6xmpk3rlg7k5uqynk
Naszym oczom powinna się ukazać lista z hashami wygenerowanych bloków. Poza konsolą w głównym oknie możemy zauważyć, że mamy 50 monet, a 5000 czeka na kolejne potwierdzenia. Każdy nowy blok musi uzyskać 100 potwierdzeń, aby górnik mógł wydać swoje monety, stąd 101 bloków pozwala nam dostać cokolwiek. Teraz możemy uzyskać kolejny adres, żeby sprawdzić, czy nasze monety rzeczywiście da się wydać.
Code:
getnewaddress "Alice"
bcrt1q4zuu8hra39kxpcpktag67492e9r346a69wfuwl
Same adresy możemy również generować z poziomu interfejsu graficznego, podobnie z wysyłaniem transakcji. Jak do tej pory, jedynie generowanie bloków musimy wykonać z konsoli, bo z założenia to nie jest coś, co przeciętny użytkownik robi, więc ta opcja została usunięta z okienkowej wersji klienta. Żeby jednak nie wykonywać transakcji z samym sobą, możemy uruchomić drugiego klienta, wtedy nasze testy będą bardziej realistyczne:
Code:
bitcoin-qt -regtest -choosedatadir -port=12345
Opcja "-choosedatadir" sprawia, że możemy wybrać sobie osobny folder, w którym nasz drugi węzeł będzie trzymał wszystkie dane, zaś "-port" umożliwia zmianę numeru portu, gdyż jeśli oba węzły są uruchomione na jednym komputerze, to nie mogą jednocześnie używać tego samego portu. Ponieważ w regteście domyślnie węzły się ze sobą nie łączą, musimy zrobić to ręcznie w konsoli (CTRL+T), wpisując:
Code:
addnode "127.0.0.1" "add"
Od tej pory, w prawym dolnym rogu powinniśmy zobaczyć w obu klientach, że liczba połączeń wynosi jeden. Oprócz tego, węzeł niebędący górnikiem powinien pobrać wszystkie bloki od swojego sąsiada. Załóżmy, że drugi węzeł też ma jakiś adres, na przykład:
Code:
getnewaddress "Bob"
bcrt1qqfw2atr0kledrcu5r6xztsxwxg63n7lct9yj9v
Mamy zatem dwa węzły, jeden to "Alice" (również jako górnik), a drugim jest "Bob", jako zwykły użytkownik. Moglibyśmy mieć trzy węzły (albo i więcej), wtedy nasze testy byłyby jeszcze bardziej realistyczne, bo górnik nie musiałby być jednym z użytkowników, no ale myślę, że na początek dwa węzły nam wystarczą. Idźmy dalej z dwoma węzłami, chcemy mieć wspólny adres należący do obu węzłów tak, aby nie musiały sobie ufać i mogły wymieniać się monetami tak, jak w Lightning Network. Żeby utworzyć adres 2-of-2 multisig, potrzebujemy kluczy publicznych. Sprawdźmy zatem, jakie te klucze są:
Code:
getaddressinfo "bcrt1q4zuu8hra39kxpcpktag67492e9r346a69wfuwl"
{
  "address": "bcrt1q4zuu8hra39kxpcpktag67492e9r346a69wfuwl",
  "scriptPubKey": "0014a8b9c3dc7d896c60e0365f51af54aac9471aebba",
  "ismine": true,
  "solvable": true,
  "desc": "wpkh([085ffa1d/0'/0'/1']02a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe)#kjdtmlkf",
  "iswatchonly": false,
  "isscript": false,
  "iswitness": true,
  "witness_version": 0,
  "witness_program": "a8b9c3dc7d896c60e0365f51af54aac9471aebba",
  "pubkey": "02a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe",
  "ischange": false,
  "timestamp": 1611830525,
  "hdkeypath": "m/0'/0'/1'",
  "hdseedid": "194bc24b7b521ce16031bfba670eb31bf1b20eea",
  "hdmasterfingerprint": "085ffa1d",
  "labels": [
    "Alice"
  ]
}
Analogicznie postępujemy z drugim węzłem:
Code:
getaddressinfo "bcrt1qqfw2atr0kledrcu5r6xztsxwxg63n7lct9yj9v"
{
  "address": "bcrt1qqfw2atr0kledrcu5r6xztsxwxg63n7lct9yj9v",
  "scriptPubKey": "0014025caeac6fb7f2d1e3941e8c25c0ce323519fbf8",
  "ismine": true,
  "solvable": true,
  "desc": "wpkh([995aa32b/0'/0'/0']0313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf1)#dvwjdqdn",
  "iswatchonly": false,
  "isscript": false,
  "iswitness": true,
  "witness_version": 0,
  "witness_program": "025caeac6fb7f2d1e3941e8c25c0ce323519fbf8",
  "pubkey": "0313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf1",
  "ischange": false,
  "timestamp": 1611831683,
  "hdkeypath": "m/0'/0'/0'",
  "hdseedid": "8c58a942c276db10c49500ca0827f7df170fc5e3",
  "hdmasterfingerprint": "995aa32b",
  "labels": [
    "Bob"
  ]
}
Teraz mamy już wszystko, aby utworzyć adres 2-of-2 multisig:
Code:
createmultisig 2 "[\"02a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe\",\"0313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf1\"]" "bech32"
{
  "address": "bcrt1q8md79rv8v2tsf0rjzxprfl0l48qtu05j5e83hctyxhgka79pfk8qxrth0n",
  "redeemScript": "522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae",
  "descriptor": "wsh(multi(2,02a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe,0313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf1))#42ssa8ux"
}
Na razie jako typ adresu wybieramy Segwit, czyli "bech32", w przyszłości możliwe, że użyjemy tutaj adresu Taproot. Skoro już mamy adres, to moglibyśmy po prostu wysłać nasze monety na wspólne konto. W przypadku Lightning Network w praktyce najpierw jedynie tworzymy transakcję, natomiast wysyłamy ją później. Chodzi o to, że gdyby na przykład Alice wysłała do wspólnego kanału swoje monety otwierając go, to nie mogłaby go później zamknąć bez odpowiedniej transakcji! Zatem żeby zrobić to tak, jak należy, to musimy utworzyć najpierw obie transakcje, a dopiero później wysłać pierwszą z nich (bo nie chcemy od razu przecież zamykać kanału). Do utworzenia transakcji z poziomu konsoli potrzebujemy przede wszystkim hashu poprzedniej transakcji i numeru wyjścia, przy którym są nasze monety. Jesteśmy to w stanie uzyskać z poziomu interfejsu graficznego, klikając przycisk "Transactions". Prawym kliknięciem możemy zaznaczyć naszą transakcję i wybrać "Copy raw transaction". To nam wystarczy, aby w konsoli podejrzeć szczegóły transakcji:
Code:
decoderawtransaction "0200000000010196a5f1f57f44c91b15fd2974cb7c0f294cdaac342dcad1c20aa36349616d39f50000000000fdffffff0192f1052a01000000160014a8b9c3dc7d896c60e0365f51af54aac9471aebba0247304402204e1fb465daa4d33d58776aed215d437d8dc9d95623e7775c44c6c35e738ca17c0220029f92a0b8ba047defa89605bdf76dd52046b6a8f386878932616334caa55508012102a3cd82ea50a125b2f86bed870dc96220f80a95a64bbab0dc269af02c4abe211665000000"
{
  "txid": "1538679909fc2030ea9420b737cbad55ff129ea96dbedfe9379898f39cf0d261",
  "hash": "0bfed83cf0de3a4e8a0b5f5e5279dc0783bb35f093e76c692a9694dde39e6868",
  "version": 2,
  "size": 191,
  "vsize": 110,
  "weight": 437,
  "locktime": 101,
  "vin": [
    {
      "txid": "f5396d614963a30ac2d1ca2d34acda4c290f7ccb7429fd151bc9447ff5f1a596",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "304402204e1fb465daa4d33d58776aed215d437d8dc9d95623e7775c44c6c35e738ca17c0220029f92a0b8ba047defa89605bdf76dd52046b6a8f386878932616334caa5550801",
        "02a3cd82ea50a125b2f86bed870dc96220f80a95a64bbab0dc269af02c4abe2116"
      ],
      "sequence": 4294967293
    }
  ],
  "vout": [
    {
      "value": 49.99999890,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 a8b9c3dc7d896c60e0365f51af54aac9471aebba",
        "hex": "0014a8b9c3dc7d896c60e0365f51af54aac9471aebba",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "bcrt1q4zuu8hra39kxpcpktag67492e9r346a69wfuwl"
        ]
      }
    }
  ]
}
W ten sposób możemy zaglądać w dowolne transakcje, wystarczy, że będziemy mieli dane szesnastkowe transakcji (wzięte choćby z jakiegoś block explorera) i już możemy patrzeć na wszelkie szczegóły, które nas interesują. Stąd widać wyraźnie, że musimy podać "1538679909fc2030ea9420b737cbad55ff129ea96dbedfe9379898f39cf0d261" jako hash transakcji oraz zero jako numer wyjścia. Natomiast co do wyjść, to jedno nam wystarczy jako przykład, po prostu wrzucamy wszystko na nasz wspólny adres, czyli "bcrt1q8md79rv8v2tsf0rjzxprfl0l48qtu05j5e83hctyxhgka79pfk8qxrth0n". Piszemy zatem:
Code:
createrawtransaction "[{\"txid\":\"1538679909fc2030ea9420b737cbad55ff129ea96dbedfe9379898f39cf0d261\",\"vout\":0}]" "[{\"bcrt1q8md79rv8v2tsf0rjzxprfl0l48qtu05j5e83hctyxhgka79pfk8qxrth0n\":49.99999000}]"
020000000161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e00000000
Jeśli ta transakcja rzeczywiście miałaby się wydarzyć, to opłata byłaby zależna od tego, jak bardzo mempool jest zapchany. Moglibyśmy tutaj dać minimalną opłatę, ale to wymagałoby policzenia rozmiaru transakcji, więc sobie to na razie darujemy i zaokrąglimy kwotę do równych tysięcy satoshi. Chodzi nam głównie jednak nie tyle o tą transakcję, ile o kolejną, która pozwoli zamknąć kanał. Potrzebujemy zatem hasha transakcji i numeru wyjścia. Mamy już dane szesnastkowe transakcji, więc możemy ją zdekodować:
Code:
decoderawtransaction "020000000161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e00000000"
{
  "txid": "2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85",
  "hash": "2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85",
  "version": 2,
  "size": 94,
  "vsize": 94,
  "weight": 376,
  "locktime": 0,
  "vin": [
    {
      "txid": "1538679909fc2030ea9420b737cbad55ff129ea96dbedfe9379898f39cf0d261",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 49.99999000,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 3edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e",
        "hex": "00203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e",
        "reqSigs": 1,
        "type": "witness_v0_scripthash",
        "addresses": [
          "bcrt1q8md79rv8v2tsf0rjzxprfl0l48qtu05j5e83hctyxhgka79pfk8qxrth0n"
        ]
      }
    }
  ]
}
Dzięki adresom typu Segwit nie musimy martwić się o ID transakcji, bo dołączenie podpisów tego nie zmieni (w starszych adresach tak nie jest). Zatem możemy śmiało zbudować kolejną transakcję, która wypłaci Alice wszystkie środki (bo po stronie Boba niczego nie ma). Wygenerujmy nowy adres Alice, żeby go nie używać ponownie:
Code:
getnewaddress "Alice"
bcrt1qywzj7g9sdw7dlm4h5k82yevuqcr5utwzt3j5k9
Znów zaokrąglamy sobie fee i możemy utworzyć kolejną transakcję:
Code:
createrawtransaction "[{\"txid\":\"2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85\",\"vout\":0}]" "[{\"bcrt1qywzj7g9sdw7dlm4h5k82yevuqcr5utwzt3j5k9\":49.99998000}]"
0200000001850fe338cbfe3caca2be004fe1ba7afdf6a49d2fb7391acb4fe81f1b2a840c2c0000000000ffffffff0130ea052a0100000016001423852f20b06bbcdfeeb7a58ea2659c06074e2dc200000000
Teraz z kolei przy składaniu podpisów zaczynamy od transakcji zamykającej kanał. Chodzi o to, aby nie otworzyć kanału nie mając kompletu podpisów. Do tego oprócz danych szesnastkowych transakcji do podpisu, potrzebujemy również danych poprzedniej transakcji. Żeby łatwiej posługiwać się wspólnym adresem, możemy go zaimportować jako watch-only (gdyż nie mamy obu kluczy prywatnych, zarówno Alice, jak i Bob mają jedynie swoje klucze).
Code:
importmulti "[{\"desc\":\"wsh(multi(2,02a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe,0313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf1))#42ssa8ux\",\"timestamp\":\"now\",\"watchonly\":true,\"label\":\"AliceAndBob\"}]"
Import wspólnego adresu spowoduje, że portfel sam załatwi część rzeczy za nas i nie będziemy musieli podawać wszystkiego w konsoli. Każda ze stron może złożyć podpis, tyle informacji w zupełności wystarcza, zacznijmy od Alice, choć nie ma to większego znaczenia:
Code:
signrawtransactionwithwallet "0200000001850fe338cbfe3caca2be004fe1ba7afdf6a49d2fb7391acb4fe81f1b2a840c2c0000000000ffffffff0130ea052a0100000016001423852f20b06bbcdfeeb7a58ea2659c06074e2dc200000000" "[{\"txid\":\"2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85\",\"vout\":0,\"scriptPubKey\":\"00203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e\",\"redeemScript\":\"522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae\",\"amount\":49.99999000}]"
{
  "hex": "02000000000101850fe338cbfe3caca2be004fe1ba7afdf6a49d2fb7391acb4fe81f1b2a840c2c0000000000ffffffff0130ea052a0100000016001423852f20b06bbcdfeeb7a58ea2659c06074e2dc2040047304402201354bae6297085d01db2f2a3edb3a9f3f0e3c30da3d345801078be1d3d43270a022071cae276ede6229cd97cb54680e0f5462b8a11ca87b123739f1410ef3ee2cb4b010047522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae00000000",
  "complete": false,
  "errors": [
    {
      "txid": "2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85",
      "vout": 0,
      "witness": [
        "",
        "304402201354bae6297085d01db2f2a3edb3a9f3f0e3c30da3d345801078be1d3d43270a022071cae276ede6229cd97cb54680e0f5462b8a11ca87b123739f1410ef3ee2cb4b01",
        "",
        "522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae"
      ],
      "scriptSig": "",
      "sequence": 4294967295,
      "error": "CHECK(MULTI)SIG failing with non-zero signature (possibly need more signatures)"
    }
  ]
}
Teraz z kolei Bob może wziąć sygnaturę od Alice i dokończyć całość, uzyskując kompletną transakcję:
Code:
signrawtransactionwithwallet "02000000000101850fe338cbfe3caca2be004fe1ba7afdf6a49d2fb7391acb4fe81f1b2a840c2c0000000000ffffffff0130ea052a0100000016001423852f20b06bbcdfeeb7a58ea2659c06074e2dc2040047304402201354bae6297085d01db2f2a3edb3a9f3f0e3c30da3d345801078be1d3d43270a022071cae276ede6229cd97cb54680e0f5462b8a11ca87b123739f1410ef3ee2cb4b010047522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae00000000" "[{\"txid\":\"2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85\",\"vout\":0,\"scriptPubKey\":\"00203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e\",\"amount\":49.99999000}]"
{
  "hex": "02000000000101850fe338cbfe3caca2be004fe1ba7afdf6a49d2fb7391acb4fe81f1b2a840c2c0000000000ffffffff0130ea052a0100000016001423852f20b06bbcdfeeb7a58ea2659c06074e2dc2040047304402201354bae6297085d01db2f2a3edb3a9f3f0e3c30da3d345801078be1d3d43270a022071cae276ede6229cd97cb54680e0f5462b8a11ca87b123739f1410ef3ee2cb4b014730440220194262dbb1be43f0f5ccdf7e0e3af7864153493dc435e9350d77f50c30b7cf8a02204303e0604e049ea6220aebb597442a58ad52f46ca1df73adac6da593646721520147522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae00000000",
  "complete": true
}
Zatem ostatecznie obie strony dysponują kompletną transakcją i obie strony mogą ją zdekodować:
Code:
decoderawtransaction "02000000000101850fe338cbfe3caca2be004fe1ba7afdf6a49d2fb7391acb4fe81f1b2a840c2c0000000000ffffffff0130ea052a0100000016001423852f20b06bbcdfeeb7a58ea2659c06074e2dc2040047304402201354bae6297085d01db2f2a3edb3a9f3f0e3c30da3d345801078be1d3d43270a022071cae276ede6229cd97cb54680e0f5462b8a11ca87b123739f1410ef3ee2cb4b014730440220194262dbb1be43f0f5ccdf7e0e3af7864153493dc435e9350d77f50c30b7cf8a02204303e0604e049ea6220aebb597442a58ad52f46ca1df73adac6da593646721520147522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae00000000"
{
  "txid": "f650b54f0c53e479f1bed78e469bed20654eda910a420314ed386af93257e485",
  "hash": "076f5442855c4b73470cfcf7b09d02cb8421ddda248552a62715111682fe5536",
  "version": 2,
  "size": 302,
  "vsize": 137,
  "weight": 548,
  "locktime": 0,
  "vin": [
    {
      "txid": "2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "",
        "304402201354bae6297085d01db2f2a3edb3a9f3f0e3c30da3d345801078be1d3d43270a022071cae276ede6229cd97cb54680e0f5462b8a11ca87b123739f1410ef3ee2cb4b01",
        "30440220194262dbb1be43f0f5ccdf7e0e3af7864153493dc435e9350d77f50c30b7cf8a02204303e0604e049ea6220aebb597442a58ad52f46ca1df73adac6da5936467215201",
        "522102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe210313fc2401362129bd664490e21070d8ffd48d4e38837ec1b3ee9df1156dccadf152ae"
      ],
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 49.99998000,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 23852f20b06bbcdfeeb7a58ea2659c06074e2dc2",
        "hex": "001423852f20b06bbcdfeeb7a58ea2659c06074e2dc2",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "bcrt1qywzj7g9sdw7dlm4h5k82yevuqcr5utwzt3j5k9"
        ]
      }
    }
  ]
}
Ponieważ Bob nie wkłada do kanału żadnych swoich monet, Alice musi wypuścić pierwszą transakcję, aby kanał mógł zostać otwarty. Podpisuje ją zatem:
Code:
signrawtransactionwithwallet "020000000161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e00000000"
{
  "hex": "0200000000010161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e0247304402206bc49093755da7513e832786d16d4c9cbaee25a9addd97a2f45b99ca93ec081702205b91ab034b269ac019cf855b0a94a73dd5f4ce1f62bf3545b006783dcf237ada012102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe00000000",
  "complete": true
}
Możemy rzucić okiem, że ID transakcji jest nadal identyczne, choć jej hash oczywiście się zmienia po dodaniu sygnatur:
Code:
decoderawtransaction "0200000000010161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e0247304402206bc49093755da7513e832786d16d4c9cbaee25a9addd97a2f45b99ca93ec081702205b91ab034b269ac019cf855b0a94a73dd5f4ce1f62bf3545b006783dcf237ada012102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe00000000"
{
  "txid": "2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85",
  "hash": "b1acecf6673e10695ab1bb57c5705a9cd03505193fa8da15d3df00763647ff1d",
  "version": 2,
  "size": 203,
  "vsize": 122,
  "weight": 485,
  "locktime": 0,
  "vin": [
    {
      "txid": "1538679909fc2030ea9420b737cbad55ff129ea96dbedfe9379898f39cf0d261",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "304402206bc49093755da7513e832786d16d4c9cbaee25a9addd97a2f45b99ca93ec081702205b91ab034b269ac019cf855b0a94a73dd5f4ce1f62bf3545b006783dcf237ada01",
        "02a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe"
      ],
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 49.99999000,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 3edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e",
        "hex": "00203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e",
        "reqSigs": 1,
        "type": "witness_v0_scripthash",
        "addresses": [
          "bcrt1q8md79rv8v2tsf0rjzxprfl0l48qtu05j5e83hctyxhgka79pfk8qxrth0n"
        ]
      }
    }
  ]
}
Przed wysłaniem transakcji, Alice może sprawdzić, czy taka transakcja będzie zaakceptowana przez inne węzły. Może to być przydatne przy ustawianiu fee tak, aby było możliwie minimalne:
Code:
testmempoolaccept "[\"0200000000010161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e0247304402206bc49093755da7513e832786d16d4c9cbaee25a9addd97a2f45b99ca93ec081702205b91ab034b269ac019cf855b0a94a73dd5f4ce1f62bf3545b006783dcf237ada012102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe00000000\"]"
[
  {
    "txid": "2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85",
    "allowed": true
  }
]
Wszystko jest w porządku, zatem Alice wysyła pierwszą transakcję i otwiera w ten sposób kanał:
Code:
sendrawtransaction "0200000000010161d2f09cf3989837e9dfbe6da99e12ff55adcb37b72094ea3020fc09996738150000000000ffffffff0118ee052a010000002200203edbe28d87629704bc72118234fdffa9c0be3e92a64f1be16435d16ef8a14d8e0247304402206bc49093755da7513e832786d16d4c9cbaee25a9addd97a2f45b99ca93ec081702205b91ab034b269ac019cf855b0a94a73dd5f4ce1f62bf3545b006783dcf237ada012102a04782a942b08c9aaadfd1529f47520959eda975c1f2ff174d28a415f8b367fe00000000"
2c0c842a1b1fe84fcb1a39b72f9da4f6fd7abae14f00bea2ac3cfecb38e30f85
No i mamy to. Krok po kroku dotknęliśmy Lightninga od strony czysto technicznej. Dalej wystarczy, że Alice i Bob wspólnie zmienią transakcję zamykającą na jakąś inną, starczy zamienić tam kwoty i będzie dobrze. Trzeba także dołożyć transakcję kary, żeby zapobiec wypuszczeniu starej transakcji przez drugą stronę. Oprócz tego, w praktyce transakcja zamykająca trzymana przez obie strony wygląda tak, że wiadomo dokładnie, kto zamknął kanał jednostronnie, bo jedna strona dostaje środki natychmiast, a druga strona ma je zablokowane (czas takiej blokady jest określony z góry przez obie strony w momencie tworzenia kanału). Tutaj mamy najprostszy możliwy przykład transakcji zamykającej kanał za zgodą obu stron, żeby uzyskać przykłady z życia wzięte, należałoby to jeszcze rozbudować.

Myślę, że na początek ten wpis i tak jest dość techniczny, bardziej złożone rzeczy można ewentualnie powyjaśniać po przetrawieniu tego.
adamvp
Hero Member
*****
Offline Offline

Activity: 1162
Merit: 708



View Profile
January 28, 2021, 05:30:50 PM
 #32

@Rath_ jeszcze taka kwestia,  bo mam potwierdzenie, ze moje invoice zostalo oplacone:

Ale to wszystko co potrafie znalezc w tym portfelu, czy to jest tak z definicji, czy to tylko takie ograniczenie konkretnie BlueWallet, ze nie widac zrodla platnosci?
I 2) czy takie invoice jest jednorazowego uzytku? Co jakbym chcial otrzymywac np dajmy na to dotacje przez LN?
PS. Zrobiłem sobie test i wyslalem 10sat  na profil z tippin.me  ale minelo juz kilka minut  a saldo dalej sie nie powiększyło
(Na bluewallet odjelo)

Ok wlasnie sie zaktualizowalo

I am looking for signature campaign Wink pm me
garlonicon
Newbie
*
Offline Offline

Activity: 27
Merit: 42


View Profile
January 28, 2021, 06:26:20 PM
Merited by adamvp (2)
 #33

Quote
Ale to wszystko co potrafie znalezc w tym portfelu, czy to jest tak z definicji, czy to tylko takie ograniczenie konkretnie BlueWallet, ze nie widac zrodla platnosci?
Jak to mówią niektórzy na forum: "there is no from address". Ogólnie rzecz biorąc, nie powinieneś wiedzieć, skąd jest dana moneta. Jednym z założeń Bitcoina jest to, żebyś tego nie wiedział, bo to adres odbiorcy, a nie nadawcy ma tutaj znaczenie (odwrotnie niż w banku, gdzie zawsze patrzysz skąd przelew przyszedł). Jak w Bitcoinie ktoś użyje CoinJoin, to wiesz doskonale, które wyjście transakcji jest Twoje, ale z którego wejścia masz monety? Nie wiadomo, wszyscy mają je od wszystkich w ramach danej transakcji, tak to działa.

Quote
czy takie invoice jest jednorazowego uzytku?
Powinno być. To trochę tak, jak z adresami: podajesz komuś adres i w zasadzie to nie powinieneś używać ponownie tego samego. Poza tym, invoice w LN ma coś takiego, jak czas wygaśnięcia, jeśli minie, to wtedy ryzykowne jest używanie takiego invoice, bo nie wiadomo, czy odbiorca nadal to przechowuje.

Quote
Co jakbym chcial otrzymywac np dajmy na to dotacje przez LN?
W sumie można byłoby zrobić invoice bez terminu ważności, no ale wiesz, kanały się zmieniają. Jak długo planujesz mieć otwarty jeden i ten sam kanał? Jeśli ktoś inny obsługuje Twoje kanały, no to jak się stan sieci pozmienia, jedne kanały znikną, a drugie powstaną, no to płatność nie przejdzie.

Quote
PS. Zrobiłem sobie test i wyslalem 10sat  na profil z tippin.me  ale minelo juz kilka minut  a saldo dalej sie nie powiększyło
(Na bluewallet odjelo)
Odejmuje od razu, bo swoje środki są zwykle traktowane jako "zaufane". Jak sam coś wysyłasz, no to wiesz, że wysłałeś. Najwyżej jak transakcja nie dojdzie, to wtedy masz stan oznaczony jako "error", ale tak, to raczej powinno dojść. Zresztą, masz prosty portfel, gdzie kanałami zarządza ktoś inny, więc w zasadzie to oni dbają o to, żeby to pchnąć. Może miałeś pecha i routing się nie udał, czasem tak bywa. Bez ścieżki od A do B nie da się przelać środków, w najgorszym wypadku wtedy trzeba to pchać on-chain, choć portfele LN unikają tego, o ile to możliwe.

Quote
Ok wlasnie sie zaktualizowalo
Cieszę się, że działa. Jeśli chodzi o LN, no to ja tam głównie korzystałem z BlueWallet i z Phoenix wallet. Ten pierwszy jest dość prosty, raczej przyjazny nowym, ale wielu szczegółów technicznych tam nie zobaczysz. W Phoenix wallet widać nieco więcej, bo możesz sobie obserwować kanały i jak się uprzesz, to nawet odnajdziesz on-chain swoją transakcję. Z kolei jak sam postawisz HUB-a, to widać wszystko jak na dłoni. No ale co kto lubi, popróbuj różnych portfeli, pobaw się drobnymi kwotami, przywykniesz. A jak nie chcesz pchać prawdziwych BTC, no to możesz pokusić się o jakąś sieć testową, chociaż akurat w LN to może nie być aż tak proste, jak postawienie regtesta w Core.
wwzsocki
Legendary
*
Offline Offline

Activity: 1624
Merit: 1484


First 100% Liquid Stablecoin Backed by Gold


View Profile WWW
January 28, 2021, 06:59:39 PM
Last edit: January 28, 2021, 07:14:07 PM by wwzsocki
 #34

ciach ale tylko dla tego że długie  Wink

Super tutorial, zasługuje na te merirty, świetnie napisany i można spokojnie krok po kroku przetestować sobie LN.

Rozumiem, że nadal potrzebuję portfel BTC i cały łańcuch, czy może nie? Jesteś jakiś portfel do LN?

Dawno nie miałem portfela BTC, więc zastanawia mnie jak to zostało rozwiązane, jeżeli trzeba mieć cały blockchain, to potrzeba pewnie od cholery miejsca i czasu do pełnej synchronizacji?

garlonicon
Newbie
*
Offline Offline

Activity: 27
Merit: 42


View Profile
January 28, 2021, 07:27:44 PM
 #35

Quote
Rozumiem że nadal potrzebuję portfel BTC i cały łańcuch, czy może nie?
Jest tam opisany portfel Bitcoin Core. Po prostu to wyjaśnia, jak działa LN z punktu widzenia on-chain. Tylko tyle i aż tyle. A ponieważ to są testy, w dodatku takie, które widzisz tylko u siebie i nie dzielisz się nimi z innymi, no to łańcuch początkowy jest pusty, a później to już sam decydujesz, ile ma ważyć i jak złożony ma być.

Quote
Jesteś jakiś portfel do LN?
Jak już wspomniałem, do prawdziwych monet LN jest BlueWallet, jest Phoenix wallet i jest też program do stawiania własnych HUB-ów, czyli na przykład LND (Lightning Network Daemon). Jeśli chcesz działać na całkowicie własnym łańcuchu, to potrzebujesz tego ostatniego.

Quote
Dawno nie miałem portfela BTC, więc zastanawia mnie jak to zostało rozwiązane, jeżeli trzeba mieć cały blockchain, to potrzeba pewnie od cholery miejsca i czasu do pełnej synchronizacji?
Nie trzeba mieć całego blockchaina, żeby używać LN. W ogóle nie trzeba mieć całego blockchaina, żeby używać Bitcoina on-chain. Jeśli umiesz tworzyć transakcje ręcznie w konsoli, tak jak w tutorialu, to też to zadziała i możesz używać portfela Core tak, jak portfeli SPV (jest to nawet zalecane, żeby mieć taki portfel offline i to z niego podpisywać transakcje, a weryfikować z osobnego węzła jako watch-only, gdzie możesz mieć cały łańcuch). Jeśli jednak chcesz używać portfela Bitcoin Core zgodnie z zaleceniami, to powinieneś pobrać i zweryfikować cały blockchain, ale wystarczy to zrobić tylko jeden raz. Nie musisz nawet trzymać na dysku całego łańcucha, od nowszych wersji pruning jest domyślnie ustawiony na 2 GB, więc trzymasz bloki jedynie z ostatnich około dwóch tygodni. Jeśli masz zbiór UTXO, to tyle wystarczy, później klient już ufa sam sobie i pamięta, kto ile ma monet. Bazując na tym, klient jest w stanie weryfikować kolejne bloki. Tyle w kwestii pełnego węzła, można też polegać na węzłach SPV, wtedy jest deczko mniej bezpiecznie, no ale to też zadziała. Portfele BlueWallet oraz Phoenix wallet łączą się z serwerami Electrum, czyli w zasadzie używają węzłów SPV i to im wystarczy, aby obsłużyć LN.

Także nie, pełny węzeł nie jest obowiązkowy, to jest kwestia balansu między wygodą, a bezpieczeństwem, którą możesz przesunąć nieco bardziej w stronę wygody i nic się złego nie stanie, bo nadal bezpieczeństwo jest na dość wysokim poziomie. Poza tym, z założenia LN służy do małych kwot, więc stawianie pełnego węzła tylko po to, żeby przesłać parę satoshi nie jest konieczne. Niemniej jednak, ja mam pełny węzeł, bo tak, jak wspomniałem: to jest coś, co robisz raz. Raz pobierasz cały blockchain, później tylko trzymasz kilka, góra kilkanaście GB i masz nadal pełny węzeł, który nikomu nie musi ufać, więc myślę, że warto go sobie postawić.
adamvp
Hero Member
*****
Offline Offline

Activity: 1162
Merit: 708



View Profile
January 28, 2021, 11:49:56 PM
 #36

W kwesti tej identyfikacji odbiorcy, też by mi chodziło  o to, na ile nie widzę  nadawcy bo tak jest rozwiazana techniczne sieć, a na ile portfel to ukrywa (a np. wlasciciel portfela - zakładajac ze typ portfela z ktorym mamy do czynienia  to custodial - może sobie wszystko  tam podglądać bez ograniczen?)

I am looking for signature campaign Wink pm me
garlonicon
Newbie
*
Offline Offline

Activity: 27
Merit: 42


View Profile
January 29, 2021, 06:37:59 AM
Merited by adamvp (1)
 #37

To znaczy tak: jeśli zrozumiesz, jak LN wygląda on-chain, no to zrozumiesz też, jak wygląda off-chain. Sam Bitcoin on-chain wygląda tak, że masz transakcję. Masz wejścia i wyjścia w ramach pojedynczej transakcji. Mając jedno ze swoich wyjść nie wiesz, które wejście należy do nadawcy. Po prostu w ramach jednej transakcji wszystkie wejścia są używane do utworzenia wszystkich wyjść, do tego dochodzi opłata za całą transakcję (obliczona niejawnie jako suma wejść minus suma wyjść) i jeśli wszyscy nadawcy podpiszą taką transakcję, to nie wiadomo, co jest czyje, można jedynie zgadywać na podstawie adresów, kwot, i tak dalej.

Idąc dalej: transakcja otwierająca kanał w LN wygląda tak, że co najmniej jedna z dwóch stron musi włożyć monety do kanału i co najmniej jedna z dwóch stron musi je wyjąć z powrotem. Jeśli Alice ma kanał z Bobem, to można zrobić tak, żeby Alice mogła przesyłać monety do Boba. Wtedy początkowo wszystkie środki są po stronie Alice i stopniowo kolejne transakcje przekazują coraz większe kwoty na konto Boba, tworząc kolejne transakcje zamykające kanał, w których to Bob ma coraz więcej monet, a Alice coraz mniej.

I teraz sprawa wygląda następująco: jeśli masz własny, niezależnie postawiony węzeł (gadający bezpośrednio z siecią LN), no to musisz znać transakcję otwierającą kanał (żeby stwierdzić, że kanał został prawidłowo otwarty) oraz transakcję zamykającą kanał jednostronnie (żeby samemu móc go zamknąć w razie gdyby druga strona nagle wyparowała). Oprócz tego musisz przechowywać transakcje kary, czyli takie, które wyślesz w razie gdyby druga strona zamknęła kanał ze starym stanem kont. BlueWallet sporo rzeczy ukrywa, więc po prostu masz balans konta oraz listę invoice wraz z kwotami, natomiast o płynność kanałów i o całą resztę dbają twórcy portfela. Phoenix wallet pokazuje nieco więcej i na przykład jesteś w stanie zlokalizować transakcję otwierającą kanał. Same portfele przechowują więcej transakcji niż pokazują, wygoda polega między innymi na tym, że nie musisz wszystkiego tutaj widzieć i wszystkiego ręcznie sprawdzać.

Natomiast co do lokalizowania nadawcy, to zwróć uwagę na to, że aby płatność się udała, to trzeba zbudować ścieżkę na przykład od Alice do Zacka. Po drodze mogą być różne węzły, na razie da się ustalić, którędy dokładnie płatność idzie, ale w przyszłości nie musi tak być. Można na przykład zrobić tak, żeby konkretną kwotę puścić wieloma kanałami jednocześnie, wtedy to będzie tak, jak z tymi transakcjami on-chain, gdzie masz wiele wejść. Które są czyje? Nie wiadomo. Także cóż: jeśli używając Bitcoina próbujesz ustalić nadawcę, to używasz tego niezgodnie z przeznaczeniem. Założenie jest takie, że jeśli chcesz, aby ktoś coś wpłacił on-chain, no to podajesz tej osobie adres i jeśli na niego coś przyjdzie, to zakładasz, że to właśnie od tego nadawcy pochodzi (bo nikomu innemu tego nie pokazujesz). Analogicznie w przypadku invoice: dajesz to konkretnemu nadawcy i wtedy wiesz, kto to jest. A skoro wkleiłeś invoice publicznie na forum, no to możesz się domyślać, że Rath to opłacił, no ale 100% pewności nie masz.
Airbuxf
Member
**
Offline Offline

Activity: 257
Merit: 32


View Profile
February 01, 2021, 09:22:51 AM
Merited by vjudeu (1)
 #38

Jeszcze nie zacząłem reaserchu ale mam pytanie, czy w LN da się zrobić coś na kształt papierowego portfela wygenerowanego ręcznie/offline bez jakiegokolwiek instalowania czegokolwiek i czy taki portfel będzie mógł funkcjonować w sieci czy jak oto właściwie wygląda? nie bijcie jak jest już to gdzieś napisane
vjudeu
Member
**
Offline Offline

Activity: 122
Merit: 60


View Profile
February 01, 2021, 10:14:02 AM
 #39

Tak, na przykład Phoenix wallet umożliwia zapisanie 12 słów, dzięki którym możesz później odzyskać swój portfel (Settings -> Recovery phrase -> Display seed). Aha, no i taka ciekawostka przy okazji: nawet jeśli LN działa głównie na aplikacjach mobilnych, to są emulatory (na przykład LDPlayer), które umożliwiają korzystanie z tych portfeli na zwykłym komputerze.
adamvp
Hero Member
*****
Offline Offline

Activity: 1162
Merit: 708



View Profile
February 02, 2021, 09:35:00 PM
 #40

Wydaje mi sie, ze jednak nie, ale mogę sie mylic.
Przynajmniej w sensie, ze mozna sobie wygenerowac offline walllet i na niego wysłać, bo zeby odebrać kase w LN to trzeba byc online (albo skorzystać z pośrednika)
No i tez sama natura kanałów, które moga sie zamykac stosunkowo szybko 🤔

I am looking for signature campaign Wink pm me
Pages: « 1 [2] 3 »  All
  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!