Syscall-referentie

Samenvatting

Programma's communiceren met de runtime via syscalls voor logging, hashing, cryptografie, CPI, sysvars, geheugenbewerkingen en meer. Elke syscall trekt compute units af van het gedeelde budget van de transactie.

Syscalls

Programma's communiceren met de runtime via syscalls geregistreerd in create_program_runtime_environment_v1(). Elke syscall trekt compute units af van het compute budget van de transactie.

Syscall-kosten

De basis compute unit-kostenconstanten van elke syscall zijn gedefinieerd in SVMTransactionExecutionCost. Sommige syscalls combineren deze constanten tot complexere formules in hun implementatie (bijv. schalen met invoergrootte of toevoegen van syscall_base_cost overhead). Zie de individuele syscall-bronlinks hieronder voor exacte kostenberekeningen.

Beschikbare syscalls

De volledige set syscalls beschikbaar voor sBPF-programma's, zoals geregistreerd in create_program_runtime_environment_v1(). Feature-gated syscalls zijn alleen beschikbaar wanneer de bijbehorende feature actief is op het cluster.

Controleflow

SyscallBeschrijvingBron
abortStopt het programma onmiddellijk. Ingevoegd door LLVM voor onhoudbare condities; niet bedoeld voor expliciet gebruik.SyscallAbort
sol_panic_Stopt het programma met een bestandsnaam, regelnummer en kolomnummer voor diagnostiek.SyscallPanic

Logging

SyscallBeschrijvingBron
sol_log_Logt een UTF-8 string-bericht naar het programmalogboek.SyscallLog
sol_log_64_Logt vijf u64 waarden als hex naar het programmalogboek.SyscallLogU64
sol_log_pubkeyLogt een Pubkey als een base58-string naar het programmalogboek.SyscallLogPubkey
sol_log_compute_units_Logt de resterende compute units naar het programmalogboek.SyscallLogBpfComputeUnits
sol_log_dataLogt willekeurige byte-slices als base64-gecodeerde data.SyscallLogData

PDA

SyscallBeschrijvingBron
sol_create_program_addressLeidt een programma-adres af van seeds en een programma-ID. Retourneert 1 als het afgeleide adres op de Ed25519-curve ligt (ongeldige PDA).SyscallCreateProgramAddress
sol_try_find_program_addressVindt een geldige PDA door bump seeds te itereren van 255 naar 1. Retourneert het adres en de bump.SyscallTryFindProgramAddress

Hashing

SyscallBeschrijvingBron
sol_sha256Berekent een SHA-256 hash over een of meer byte slices.SyscallHash<Sha256Hasher>
sol_keccak256Berekent een Keccak-256 hash over een of meer byte slices.SyscallHash<Keccak256Hasher>
sol_blake3Berekent een Blake3 hash over een of meer byte slices. Feature-gated.SyscallHash<Blake3Hasher>
sol_poseidonBerekent een Poseidon hash over inputs. Feature-gated.SyscallPoseidon

Cryptografie

SyscallBeschrijvingBron
sol_secp256k1_recoverHerstelt een secp256k1 publieke sleutel uit een ondertekende berichthash en recovery-ID.SyscallSecp256k1Recover
sol_curve_validate_pointValideert dat een byte array een geldig punt is op Curve25519 (Edwards of Ristretto). Feature-gated.SyscallCurvePointValidation
sol_curve_group_opVoert Curve25519 groepsbewerkingen uit (optellen, aftrekken, vermenigvuldigen) op Edwards of Ristretto punten. Feature-gated.SyscallCurveGroupOps
sol_curve_multiscalar_mulVoert multi-scalaire vermenigvuldiging uit op Curve25519 Edwards of Ristretto punten. Feature-gated.SyscallCurveMultiscalarMultiplication
sol_alt_bn128_group_opVoert alt_bn128 (BN254) groepsbewerkingen uit: G1 optelling, G1 vermenigvuldiging en pairing check. Feature-gated.SyscallAltBn128
sol_alt_bn128_compressionComprimeert en decomprimeert alt_bn128 G1 en G2 punten. Feature-gated.SyscallAltBn128Compression
sol_big_mod_expBerekent big integer modulaire exponentiatie (base^exp mod modulus). Feature-gated.SyscallBigModExp

CPI

SyscallBeschrijvingBron
sol_invoke_signed_rustRoept een cross-program instructie aan vanuit een Rust-programma. Serialiseert instructie, accounts en signer seeds met behulp van de Rust ABI.SyscallInvokeSignedRust
sol_invoke_signed_cRoept een cross-program instructie aan vanuit een C-programma. Gebruikt de C SolInstruction ABI voor serialisatie.SyscallInvokeSignedC

Sysvars

SyscallBeschrijvingBron
sol_get_clock_sysvarSchrijft de Clock sysvar naar een door het programma aangeleverde buffer.SyscallGetClockSysvar
sol_get_epoch_schedule_sysvarSchrijft de EpochSchedule sysvar naar een door het programma aangeleverde buffer.SyscallGetEpochScheduleSysvar
sol_get_rent_sysvarSchrijft de Rent sysvar naar een door het programma aangeleverde buffer.SyscallGetRentSysvar
sol_get_epoch_rewards_sysvarSchrijft de EpochRewards sysvar naar een door het programma aangeleverde buffer.SyscallGetEpochRewardsSysvar
sol_get_last_restart_slotSchrijft de LastRestartSlot sysvar naar een door het programma aangeleverde buffer. Feature-gated.SyscallGetLastRestartSlotSysvar
sol_get_fees_sysvarSchrijft de verouderde Fees sysvar naar een door het programma aangeleverde buffer. Feature-gated (verouderd).SyscallGetFeesSysvar
sol_get_sysvarGenerieke sysvar-toegang: leest een byte slice van elke gecachte sysvar op basis van pubkey, offset en lengte (SIMD-0127). Feature-gated.SyscallGetSysvar

Geheugenbewerkingen

SyscallBeschrijvingBron
sol_memcpy_Kopieert n bytes van bron naar bestemming. Breekt af als regio's overlappen in VM-adresruimte.SyscallMemcpy
sol_memmove_Kopieert n bytes van bron naar bestemming, waarbij overlappende regio's correct worden afgehandeld.SyscallMemmove
sol_memcmp_Vergelijkt n bytes van twee geheugenregio's. Schrijft het resultaat (vergelijking van eerste afwijkende byte) naar een resultaatadres.SyscallMemcmp
sol_memset_Vult n bytes van een geheugenregio met een gegeven bytewaarde.SyscallMemset

Programgegevens

SyscallBeschrijvingBron
sol_set_return_dataStelt retourgegevens in (max 1.024 bytes) voor de huidige instructie. Leesbaar door de aanroeper nadat de CPI terugkeert.SyscallSetReturnData
sol_get_return_dataLeest de retourgegevens die zijn ingesteld door de meest recente CPI. Retourneert de gegevenslengte en de program-ID die deze heeft ingesteld.SyscallGetReturnData
sol_get_processed_sibling_instructionHaalt een eerder uitgevoerde sibling-instructie op dezelfde stackhoogte op (via omgekeerde index). Retourneert program-ID, gegevens en accountmeta's.SyscallGetProcessedSiblingInstruction
sol_get_stack_heightRetourneert de huidige call stack-hoogte. Hoogte 1 = instructie op topniveau; elke CPI verhoogt met 1.SyscallGetStackHeight

Compute

SyscallBeschrijvingBron
sol_remaining_compute_unitsRetourneert het aantal compute-eenheden dat nog beschikbaar is in het transactiebudget. Feature-gated.SyscallRemainingComputeUnits

Epoch-stake

SyscallBeschrijvingBron
sol_get_epoch_stakeRetourneert totale clusterstake (null-pointer) of de gedelegeerde stake van een specifiek stemaccount voor de huidige epoch (SIMD-0133). Feature-gated.SyscallGetEpochStake

Geheugentoewijzing

SyscallBeschrijvingBron
sol_alloc_free_Legacy bump-allocator voor dynamische geheugentoewijzing. Uitgeschakeld voor nieuwe implementaties; alleen beschikbaar voor programma's die zijn geïmplementeerd vóór de feature gate.SyscallAllocFree

Is this page helpful?

Inhoudsopgave

Pagina Bewerken

Beheerd door

© 2026 Solana Foundation.
Alle rechten voorbehouden.
Blijf Verbonden