Snapshot, po polsku migawka, to prosty w zdefiniowaniu koncept. Oznacza on zdolność do zarejestrowania stanu danego elementu w dokładnym punkcie czasowym. W kontekście technologii blockchain snapshot to dokumentacja stanu łańcucha bloków w określonej wysokości w konkretnym momencie. Praktykuje się to w celu monitorowania całkowitej ilości i równowagi posiadaczy tokenów. Snapshot może być dokonany w dowolnym czasie, aby utrwalić obraz stanu danego systemu.
Interpretacja migawek w ujęciu ogólnym
Proces tworzenia snapshotów jest podobny do robienia zdjęć, ale w przypadku technologii blockchain polega na rejestrowaniu danych w określonym momencie. Snapshoty nie są dokładnymi kopiami danych, lecz zawierają istotne metadane definiujące stan informacji w danym punkcie czasowym. Mogą być przechowywane na lokalnym serwerze lub urządzeniu, na którym zostały utworzone.
Przyjrzyjmy się temu na przykładzie. Gdy testujemy nową aplikację lub program, wprowadzając nowe ustawienia lub dane, ryzykujemy potencjalne uszkodzenia. W takich przypadkach snapshoty są bardzo użyteczne. Tworzą one praktycznie nieograniczoną liczbę kopii danych, umożliwiając programistom pracę nad rozwojem aplikacji bez ryzyka uszkodzeń.
Snapshoty wprowadzają automatyzację pracy i nie zajmują znacząco miejsca na dysku. Są także skuteczną ochroną przed awariami. W razie problemów możesz przywrócić serwer do stanu sprzed problemu. Dlatego snapshoty są tak popularne – za każdym razem, gdy tworzysz migawkę, tworzysz kopię zapasową.
Pewnie zapytasz, dlaczego używać snapshotów, skoro można tworzyć pełne kopie zapasowe danych. Owszem, ale pełna kopia zapasowa zajmuje wiele czasu, stąd często wykonywana jest nocą, by nie obciążać zasobów systemowych. Snapshoty można tworzyć w dowolnym momencie, nawet bardzo często. Dodatkowo można duplikować dane objęte snapshotem, co oszczędza przestrzeń.
Migawki jednak mają ograniczony czas przechowywania. Jeśli nie zarządzisz nimi właściwie, możesz stworzyć skomplikowane łańcuchy danych wymagające długotrwałego konsolidowania.
W kontekście technologii blockchain, snapshot to zapis stanu łańcucha bloków w określonym bloku. Migawka obejmuje pełny zapis łańcucha bloków, w tym wszystkie adresy i powiązane z nimi dane.
Migawki podczas airdropów
Przed każdym airdropem, praktycznie zawsze tworzy się snapshoty. Tokeny w airdropach są rozdzielane na podstawie sald poszczególnych adresów w blockchainie, zarejestrowanych w chwili wykonania migawki.
Migawki służą do zarejestrowania salda każdego posiadacza tokenów w konkretnym momencie, czyli wysokości bloku. Użytkownik może swobodnie przemieszczać swoje środki po utworzeniu migawki, nie ryzykując utraty prawa do udziału w airdropie. Dodatkowo, podczas migracji do nowego łańcucha blokowego (Hard Fork), wykonuje się snapshoty. Snapshot rejestruje stan łańcucha bloków przed utworzeniem nowego łańcucha w wyniku Hard Forka. Na przykład w sierpniu 2017 roku, w trakcie hard forka Bitcoin Cash, każdy posiadacz Bitcoina w bloku 478,558 miał przypisane saldo również na nowo utworzonym łańcuchu Bitcoin Cash. To wynikało z faktu, że oba łańcuchy dziedziczyły te same dane historyczne, a hard fork spowodował ich rozdzielenie na niezależne łańcuchy.
Kolejne zastosowanie migawek to gromadzenie informacji o saldach użytkowników chcących uczestniczyć w Initial Exchange Offering (IEO).
Należy jednak pamiętać, że snapshoty podlegają szczególnym regułom określonym przez poszczególne projekty. Ich działanie opiera się na wytycznych tych projektów. Czasami migawki są wykonywane w losowych momentach, a saldo użytkowników jest uśredniane na tej podstawie.
Podsumowanie
Rozwój technologii blockchain zachodzi w szybkim tempie. Platformy wykorzystujące tę technologię muszą dynamicznie reagować na te zmiany. W takim kontekście narzędziem umożliwiającym utrzymanie kroku z postępem jest mechanizm migawek. Teraz, po zapoznaniu się z ich działaniem, możesz śmiało przejść do kolejnej lekcji!