• 87-IB-Solana-账户&简单交互

    Codes in lesson3 账户 数据账户,用来存储数据 系统所有账户 程序派生账户(PDA) 程序账户,用来存储可执行程序 原生账户,指 Solana 上的原生程序,例如:System,Stake,以及 Vote 账户结构体 Account AccountInfo Account123456789101112131415#[derive(Deserialize, Partia...
  • IB-Solana-开发入门

    Codes in lesson2.1: startup_nativeCodes in lesson2.2: startup_anchorCodes in lesson2.3: startup_anchor_todo Native Rust 搭建12cargo new --lib <project_name> # new projectcargo add solana-progra...
  • IB-Solana-基础&环境搭建

    Sol 源码概览 & 区块链应用 Solana 区块链的工作原理 共识协议 高性能架构 高并发处理 低延迟 Runtime 模块 管理账户状态 智能合约执行 Programs 模块 Token Program Stake Program Rust 和 区块链 Sol 课程目标 & 在区块链中的地位 掌握 Sol 的基础 Sol 开发的 8 大核心概念 Sol 的...
  • IB-Rust-并发2

    Codes in lesson26 使用共享来实现并发 Go 语言:不要用共享内存来通信,要用通信来共享内存 Rust 支持通过共享状态来实现并发 Channel 类似单所有权:一旦将值的所有权转移至 Channeel,就无法使用它了 共享内存并发类似多所有权:多个线程可以同时访问同一块内存 使用 Mutex 来每次只允许一个线程来访问数据 Mutex 是 mutualexclusion(...
  • IB-Rust-并发1

    Codes in lesson25 并发与并行的区别 并发(Concurrency):多个任务在时间上交替执行 并行(Parallelism):多个任务同时执行 进程与线程 在大部分 OS 里,代码运行在进程(process)中,OS同时管理多个进程 在程序里,各独立部分可以同时运行,运行这些独立部分的就是线程(thread) 多线程运行 可以提升性能表现 和 增加复杂性,但无法保障各线程...
  • IB-Rust-测试

    Codes in lesson24.1 Codes in lesson24.2 Unit Test测试结构基本单元测试使用 #[cfg(test)] 属性标记测试模块: 123456789101112131415#[cfg(test)]mod tests { // 导入要测试的模块 use super::*; #[test] fn it_works(...
  • IB-Rust-迭代器

    Codes in lesson23 什么是迭代器? 迭代器模式:对一系列项执行某些任务 迭代器负责: 遍历每个项 确定序列(遍历)何时完成 Rust 的迭代器: 懒惰的:除非调用消费迭代器的方法,否则迭代器本身没有任何效果 123456let v1 = vec![1, 2, 3];let v1_iter = v1.iter();// rust 的迭代器是懒惰的,除非调用消费迭代器的...
  • IB-Rust-闭包

    Codes in lesson22 闭包介绍 什么是闭包? 闭包是一个可以捕获所在环境中的变量的匿名函数 闭包通过 || 符号定义,可以像普通函数一样调用,但与函数不同,闭包可以访问外部作用域的变量 闭包的特点 可以捕获周围作用域的变量 支持作为参数传递给其他函数 可以返回闭包作为函数的返回值 闭包通常通过类型推断来确定参数和返回值的类型 闭包定义12let add_one =...
  • IB-Rust-macro宏

    Codes in lesson21 常用宏123456println!("Hello, world!"); // 常用println! {"Hello, world!"};println!["Hello, world!"];let v = vec![1, 2, 3, 4, 5];assert_eq!(1, 10)...
  • IB-Rust-trait特性

    Codes in lesson20 trait 定义trait 定义了某个特定类型拥有可能与其他类型共享的功能 trait 类似于其他语言中 接口(interfaces)的功能 trait 实现普通实现 使用 trait 关键字声明一个特征 在大括号中定义该特征的所有方法 只定义特征方法的签名,而不进行实现,此时方法签名结尾是 ;,而不是 {} 123pub tr...
1239