Podsumowanie
Programy podstawowe zapewniają fundamentalną funkcjonalność sieci: zarządzanie kontami (System Program), konsensus (Vote, Stake), optymalizację transakcji (Compute Budget, Address Lookup Table) oraz prywatność (ZK ElGamal Proof). Zawiera referencję instrukcji System Program oraz linki do źródeł wszystkich 7 programów.
System Program
System Program (11111111111111111111111111111111) jest jedynym programem,
który może tworzyć nowe konta. Wszystkie nowe konta są początkowo własnością
System Program, choć własność zazwyczaj jest zmieniana podczas tworzenia. System
Program zużywa
DEFAULT_COMPUTE_UNITS
(150 CU) na instrukcję.
Referencja instrukcji System Program
| Instrukcja | Opis |
|---|---|
CreateAccount | Tworzy nowe konto. Alokuje space bajtów, przypisuje owner i transferuje lamports od płatnika. Nowe konto i płatnik muszą podpisać. |
CreateAccountWithSeed | Tak samo jak CreateAccount, ale adres nowego konta jest wyprowadzany z pubkey konta, ciągu seed oraz programu właściciela. Konto, którego pubkey został użyty do wyprowadzenia adresu, oraz płatnik muszą podpisać. |
Assign | Ustawia właściciela konta. Konto musi podpisać. Brak efektu, jeśli już jest tym właścicielem. |
AssignWithSeed | Tak samo jak Assign, ale dla adresu wyprowadzonego z seed. Konto, którego pubkey został użyty do wyprowadzenia adresu, musi podpisać. |
Transfer | Transferuje lamporty między kontami. Nadawca musi podpisać. |
TransferWithSeed | Tak samo jak Transfer, ale z adresu wyprowadzonego z seed. Konto, którego pubkey został użyty do wyprowadzenia adresu, musi podpisać. |
Allocate | Ustawia długość danych konta. Konto musi podpisać, mieć puste dane i być własnością System Program. Maksymalnie 10 MiB. |
AllocateWithSeed | Tak samo jak Allocate, ale dla adresu wyprowadzonego z seed. Dodatkowo przypisuje właściciela. Konto, którego pubkey został użyty do wyprowadzenia adresu, musi podpisać. |
AdvanceNonceAccount | Zwiększa wartość nonce do bieżącego blockhash. Uprawniony do nonce musi podpisać. |
InitializeNonceAccount | Inicjalizuje konto jako konto nonce z podanym uprawnionym. Konto musi być zwolnione z opłaty rent. |
AuthorizeNonceAccount | Zmienia uprawnionego do nonce. Obecny uprawniony musi podpisać. |
WithdrawNonceAccount | Wypłaca lamporty z konta nonce. Uprawniony musi podpisać. Jeśli konto nie jest zamykane, pozostałe saldo musi pokrywać rent. |
UpgradeNonceAccount | Uaktualnia konto nonce ze starego do bieżącego formatu wersji. Konto musi być zapisywalne i zawierać starą wersję nonce. |
Wszystkie podstawowe programy
| Program | ID programu | Opis | Źródło |
|---|---|---|---|
| System | 11111111111111111111111111111111 | Tworzy konta, przesyła SOL, alokuje dane i przypisuje własność | Źródło |
| Vote | Vote111111111111111111111111111111111111111 | Tworzy i zarządza kontami śledzącymi stan głosowania validatorów i nagrody | Źródło |
| Stake | Stake11111111111111111111111111111111111111 | Tworzy i zarządza delegacjami stake do validatorów | Źródło |
| Config | Config1111111111111111111111111111111111111 | Przechowuje dane konfiguracyjne on-chain z kontrolą dostępu na podstawie klucza | Źródło |
| Compute Budget | ComputeBudget111111111111111111111111111111 | Ustawia limity jednostek obliczeniowych i priorytety opłat za transakcje | Źródło |
| Address Lookup Table | AddressLookupTab1e1111111111111111111111111 | Zarządza tabelami wyszukiwania adresów dla transakcji odwołujących się do wielu kont | Źródło |
| ZK ElGamal Proof | ZkE1Gama1Proof11111111111111111111111111111 | Weryfikuje dowody zerowej wiedzy dla danych zaszyfrowanych ElGamala | Źródło |
Programy loaderów
Każdy program jest własnością programu loadera. Loadery odpowiadają za wdrażanie, aktualizację i wykonywanie programów, które posiadają. Pełną listę loaderów i ich adresów znajdziesz w sekcji Programy loaderów.
Is this page helpful?