当前位置: 首页 > news >正文

Native Programs(本机程序)

Native Programs

  • System Program(系统程序)
  • Config Program
  • Stake Program
  • Vote Program
  • Address Lookup Table Program
  • BPF Loader
  • Ed25519 Program
  • Secp256k1 Program

Solana contains a small handful of native programs that are part of the validator implementation and provide various core functionalities for the network. You can find the full list of native programs here.

When developing custom programs on Solana, you will commonly interact with two native programs, the System Program and the BPF Loader.

Solana contains a small handful of native programs, which are required to run validator nodes. Unlike third-party programs, the native programs are part of the validator implementation and can be upgraded as part of cluster upgrades. Upgrades may occur to add features, fix bugs, or improve performance. Interface changes to individual instructions should rarely, if ever, occur. Instead, when change is needed, new instructions are added and previous ones are marked deprecated. Apps can upgrade on their own timeline without concern of breakages across upgrades.

For each native program the program id and description each supported instruction is provided. A transaction can mix and match instructions from different programs, as well include instructions from on-chain programs.

System Program(系统程序)

Create new accounts, allocate account data, assign accounts to owning programs, transfer lamports from System Program owned accounts and pay transaction fees.
Program id: 11111111111111111111111111111111

Config Program

Add configuration data to the chain and the list of public keys that are permitted to modify it. Unlike the other programs, the Config program does not define any individual instructions. It has just one implicit instruction, a “store” instruction. Its instruction data is a set of keys that gate access to the account, and the data to store in it.
Program id: Config1111111111111111111111111111111111111

Stake Program

Create and manage accounts representing stake and rewards for delegations to validators.
Program id: Stake11111111111111111111111111111111111111

Vote Program

Create and manage accounts that track validator voting state and rewards.
Program id: Stake11111111111111111111111111111111111111

Address Lookup Table Program

Program id: AddressLookupTab1e1111111111111111111111111

BPF Loader

Deploys, upgrades, and executes programs on the chain.
Program id: BPFLoaderUpgradeab1e11111111111111111111111

The BPF Upgradeable Loader marks itself as “owner” of the executable and program-data accounts it creates to store your program. When a user invokes an instruction via a program id, the Solana runtime will load both your the program and its owner, the BPF Upgradeable Loader. The runtime then passes your program to the BPF Upgradeable Loader to process the instruction.

Ed25519 Program

Verify ed25519 signature program. This program takes an ed25519 signature, public key, and message. Multiple signatures can be verified. If any of the signatures fail to verify, an error is returned.

Program id: Ed25519SigVerify111111111111111111111111111

The ed25519 program processes an instruction. The first u8 is a count of the number of signatures to check, which is followed by a single byte padding. After that, the following struct is serialized, one for each signature to check.

Secp256k1 Program

Verify secp256k1 public key recovery operations (ecrecover).

Program id: KeccakSecp256k11111111111111111111111111111

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python爬虫-中国汽车市场月销量数据
  • 服务器并发模型
  • 互联网家政小程序,为大众带来高效、便捷的服务
  • 多个线程同时调用接口
  • 【Canvas与艺术】六角大楼
  • Windows重装系统「统信UOS」+家庭版专业版选择
  • Python基础知识笔记——特殊符号
  • SQL常用函数
  • W1R3S靶机全通详细教程
  • 【Git】Git概述
  • konvajs绘制带有透明度的多边形
  • 【python】PyQt5中QRadioButton的详细用法教程与应用实战
  • 力扣-3232. 判断是否可以赢得数字游戏
  • Miniconda快速安装conda
  • 网络编程 --------- 2、socket网络编程接口
  • 自己简单写的 事件订阅机制
  • 「面试题」如何实现一个圣杯布局?
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • angular组件开发
  • crontab执行失败的多种原因
  • ES6语法详解(一)
  • JavaScript中的对象个人分享
  • nodejs调试方法
  • Redis 懒删除(lazy free)简史
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • WePY 在小程序性能调优上做出的探究
  • Yii源码解读-服务定位器(Service Locator)
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 机器学习 vs. 深度学习
  • 前端
  • 驱动程序原理
  • 三分钟教你同步 Visual Studio Code 设置
  • 说说动画卡顿的解决方案
  • 小程序01:wepy框架整合iview webapp UI
  • puppet连载22:define用法
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #162 (Div. 2)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • ${factoryList }后面有空格不影响
  • (1)bark-ml
  • (HAL库版)freeRTOS移植STMF103
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (pytorch进阶之路)扩散概率模型
  • (补充)IDEA项目结构
  • (七)c52学习之旅-中断
  • (十)T检验-第一部分
  • (转)ABI是什么
  • (转载)hibernate缓存
  • .net core 6 redis操作类
  • .NET Core 成都线下面基会拉开序幕
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET使用存储过程实现对数据库的增删改查
  • /boot 内存空间不够
  • @ResponseBody