timezone |
---|
Asia/Shanghai |
- 自我介绍
- 嗨,你好,我是 keien。
- 热爱编程、唱,跳,rap,篮球。
- 热爱计算机科学和IT互联网事业,希望能成为一名优秀的开发者。
- 我们正在让这个世界变得更加美好,通过代码的重复使用和延展构建完美体系。
- We're making the world a better place. Through constructing elegant hierarchies for maximum code reuse and extensibility.
- 你认为你会完成本次残酷学习吗?
- 我坚信我会
- 变量声明: 学习了如何声明和使用不同类型的变量,包括整型(int, uint)、布尔型(bool)、地址(address)等。
- 基本运算符: 掌握了算术运算符(+, -, *, /, %)、比较运算符(==, !=, >, <, >=, <=)和逻辑运算符(&&, ||, !)的使用。
- 控制结构: 学习了if-else条件语句、for和while循环的使用方法。
- 合约声明: 学习了如何使用 contract 关键字声明一个智能合约,以及合约的基本结构。
- 状态变量: 了解了如何在合约中声明和使用状态变量,这些变量用于存储合约的持久数据。
- 函数: 学习了如何定义和使用函数,包括公共函数、私有函数、内部函数和外部函数的区别。
- 事件: 掌握了如何声明和触发事件,以及事件在智能合约中的重要作用。
- 编写了一个简单的存储合约,包含状态变量、setter和getter函数,以及一个事件来记录状态变化。
- 创建了一个基本的投票合约,使用状态变量存储候选人和投票结果,通过函数实现投票逻辑,并使用事件记录每次投票。
- 函数修饰符: 学习了如何使用修饰符(Modifiers)来改变函数的行为,了解了常见的修饰符如onlyOwner、require等的使用方法。
- 错误处理: 掌握了Solidity中的错误处理机制,包括使用require、assert和revert来进行条件检查和错误处理。
- 自定义错误: 学习了如何定义和使用自定义错误,以提高合约的可读性和调试效率。
- 事件(Events): 学习了如何在智能合约中定义和触发事件,了解了事件在记录合约操作和状态变化中的重要作用。
- 日志(Logs): 掌握了如何使用事件生成日志,并在区块链上存储和查询这些日志。
- 事件参数: 学习了事件参数的使用方法,包括indexed参数的作用和限制。
- 合约继承: 学习了如何使用Solidity中的继承机制来复用代码,了解了继承的基本语法和规则。
- 多重继承: 掌握了Solidity中的多重继承特性,学习了如何解决多重继承中的菱形继承问题。
- 重载和重写: 学习了函数重载和重写的概念,了解了如何在子合约中重写父合约的函数。
- 抽象合约: 了解了抽象合约的概念,学习了如何定义和使用抽象合约来实现接口和多态。
- 接口(Interfaces): 学习了如何定义和实现接口,了解了接口在智能合约设计中的重要作用。
- 库(Libraries): 学习了如何使用库来组织和复用代码,了解了库函数的调用方式和库的部署方式。
- 库的特性: 掌握了库的特性,包括库函数是静态调用的,库不能有状态变量,库不能继承或被继承等。
- 使用库的优势: 了解了使用库可以减少代码重复,提高代码的可读性和可维护性。
- 合约部署: 学习了如何使用Truffle框架部署智能合约,了解了部署脚本的编写和配置。
- 部署环境: 掌握了不同部署环境的配置,包括本地开发网络、测试网络(如Ropsten、Rinkeby)和主网。
- 合约交互: 学习了如何使用Web3.js与已部署的智能合约进行交互,了解了常见的交互方法和事件监听。
- 单元测试: 学习了如何为智能合约编写单元测试,使用Truffle框架进行测试驱动开发(TDD),确保合约的正确性和可靠性。
- Gas费用: 学习了以太坊网络中的Gas机制,了解了Gas的计算方法和影响因素。
- 优化合约代码: 掌握了几种常见的合约优化技巧,如减少存储操作、使用更高效的数据结构和函数优化等,以降低Gas费用。
- Gas限制和Gas价格: 了解了Gas限制和Gas价格的概念,学习了如何在部署和调用合约时设置合理的Gas限制和Gas价格。
- 映射(Mappings): 学习了映射的概念和用法,了解了如何使用映射来存储键值对,并掌握了映射的常见应用场景。
- 数组(Arrays): 掌握了数组的声明和使用方法,包括定长数组和动态数组的区别和操作。
- 结构体(Structs): 学习了如何定义和使用结构体来组织复杂数据,了解了结构体在智能合约中的应用。
- 存储模式: 了解了Solidity中的存储模式,包括storage、memory和calldata的区别和使用场景。
- 重入攻击防范: 学习了重入攻击的原理和防范措施,了解了如何使用检查-效果-交互模式(Check-Effects-Interactions Pattern)来防止重入攻击。
- 整数溢出和下溢: 掌握了如何使用SafeMath库来防止整数溢出和下溢,确保数学运算的安全性。
- 权限控制: 学习了如何使用修饰符和访问控制列表(ACL)来实现合约的权限管理,确保只有授权用户可以执行特定操作。
- 调试工具: 学习了常用的Solidity调试工具,如Remix IDE和Truffle Debugger,了解了如何使用这些工具进行智能合约的调试。
- 日志和事件: 掌握了如何使用日志和事件来记录合约的运行状态,帮助调试和分析合约行为。
- 错误处理: 学习了Solidity中的错误处理机制,包括使用require、assert和revert进行条件检查和错误处理。
- 自定义错误: 了解了如何定义和使用自定义错误,以提高合约的可读性和调试效率。
- 合约间调用: 学习了如何在Solidity中实现合约间的调用,了解了call、delegatecall和staticcall的区别和使用场景。
- 接口(Interfaces): 掌握了如何定义和使用接口来实现合约间的交互,确保合约的模块化和可扩展性。
- 外部合约调用: 学习了如何调用外部合约的方法,并处理可能出现的错误和异常情况。
- 安全性考虑: 了解了在进行外部调用时需要注意的安全性问题,如重入攻击和调用失败处理。
- 内联汇编(Inline Assembly): 学习了如何在Solidity中使用内联汇编来编写更底层和高效的代码,了解了内联汇编的基本语法和使用场景。
- 优化存储布局: 掌握了如何优化合约的存储布局,以减少Gas费用和提高合约的执行效率。
- 事件索引(Event Indexing): 学习了如何使用事件索引来提高事件查询的效率,了解了indexed关键字的作用和限制。
- 前端与智能合约交互: 学习了如何使用Web3.js库在前端与智能合约进行交互,了解了常见的交互方法和事件监听。
- Metamask集成: 掌握了如何在DApp中集成Metamask钱包,实现用户身份验证和交易签名。
- 用户界面设计: 学习了如何设计和实现用户友好的界面,展示智能合约的数据和功能。
- 数据持久化: 了解了如何在前端持久化数据,并与智能合约的数据进行同步。