hardhat本地交易导出到tenderly分析
本文主要是介绍使用tenderly来debug hardhat本地的事务。 参考资料: Exporting a Local Transaction 安装tenderly CLI根据tenderly官网的文档,安装tenderly CLI。 macOS使用Homebrew package manager 来安装Tenderly CLI: 12brew tap tenderly/tenderlybrew install tenderly 或者,如果您也可以使用 cURL 并运行安装脚本进行安装:: 1curl https://raw.githubusercontent.com/Tenderly/tenderly-cli/master/scripts/install-macos.sh | sh Linux您可以使用 cURL 并运行安装脚本来安装 Tenderly CLI: 1curl https://raw.githubusercontent.com/Tenderly/tenderly-cli/master/scripts/install-linux.sh |...
echidna智能合约模糊测试
Echidna是一个快速的智能合约(solidity)模糊测试框架,它是用Haskell语言编写的程序,实现基于以太坊智能合约属性的模糊测试。它使用基于合约ABI的复杂的grammar-based模糊测试来验证用户定义断言或者Solidity断言。Echidna在设计时考虑了模块化,可以很容易地被扩展成包含新的变种或者在特定情况下,测试特定合约。 特性: 生成根据实际代码生成定制化输入 可选的语料库集合,变种和覆盖指引,以便发现更深层次的错误 Slither 加持,在模糊测试之前提取有用的信息 集成源码,以识别哪些代码行在模糊测试后已经被覆盖 Curses-based retro UI、text-only或JSON输出 快速分类的自动最小化测试用例 与开发工作流无缝集成 模糊测试的最大gas消耗报告 支持使用 Etheno 和Truffle来初始化复杂的合约 此文只是Echidna的简单入门介绍,具体学会使用还是要看官方的Echidna 教程 。 参考资料: Echidna 官方github ...
ClickHouse入门(一)
本文是ClickHouse入门教程(一),目标是学会ClickHouse的基本应用使用,不涉及ClickHouse的安装部署配置运维。以下内容基本从以下参考资料中拷贝而来: 参考资料: 《ClickHouse原理解析与应用实践》 ClickHouse官方文档 ClickHouse概述 ClickHouse ClickHouse各种MergeTree的关系与作用 什么是Clickhouse(Click Stream, Data Ware-House) ClickHouse是一个开源的用于快速联机分析(OLAP)的列式数据库管理系统(DBMS)。是俄罗斯的Yandex公司于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。 ...
Spring 入门(二) Spring AOP
本文是spring 入门教程(二),目标是学会Spring AOP 注解方式的使用。基本内容拷贝自以下参考资料: 参考资料: Spring 参考手册(官方) 张开涛的跟我学Spring3 面试官:什么是AOP?Spring AOP和AspectJ的区别是什么? 理解Spring AOP AOP(Aspect Orient Programming),它是面向对象编程的一种补充,主要应用于处理一些具有横切性质的系统级服务,如日志收集、事务管理、安全检查、缓存、对象池管理等。 AOP实现的关键就在于AOP框架自动创建的AOP代理,AOP代理则可分为静态代理和动态代理两大类,其中静态代理是指使用AOP框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;而动态代理则在运行时借助于JDK动态代理、CGLIB等在内存中“临时”生成AOP动态代理类,因此也被称为运行时增强。 面向切面的编程(AOP)...
Spring 入门(一) Spring概述
本文是spring 入门教程(一),目标是知道Spring是什么,能做什么,以及一个简单的Spring的例子,内容基本均拷贝自以下参考资料。 参考资料: Spring 参考手册(官方) 张开涛的跟我学Spring3 《Spring源码深度解析》 郝佳 《Spring5开发大全》 柳伟卫 《Spring5高级编程》 Spring源码解析 – AnnotationConfigApplicationContext容器创建过程 spring 源码解析 AnnotationConfigApplicationContext方式启动容器 BeanDefinition到实例Bean的源码分析 Spring介绍 Spring 是于2003年兴起的一个轻量级Java开源框架,由Rod Johnson 在其著作 Expert One-on-One Java EE Design and Development 中阐述的部分理念和原型衍生而来。Spring 目的是用于简化企业级应用程序开发,它使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring...
spring boot入门(三)-Validator参数校验
本文是spring boot的新手入门教程(三),目标是学会使用统一参数校验注解@Valid和@Validated,完成接口和方法参数的校验。 参考资料: valid 和 validated的使用小结 Spring Validation最佳实践及其实现原理,参数校验没那么简单! 概述 基础概念和校验注解,网上有很多的资料,例如上面的参考资料,本文章不再复制描述,只关注一些重点。 @Validated和@Valid两种数据校验注解,Spring都支持。 @Valid(标准JSR-303规范)是javax(即Oracle)提供的校验注解,所属包为:javax.validation.Valid,Hibernate-validator对其进行了实现,并增加了一些自定义的校验注解。同时,它并非一定要和Spring结合在一起使用,可以手动导入Hibernate-validator依赖,如果是Spring...
spring boot入门(二)-Mybatis-Plus CRUD
本文是spring boot的新手入门教程,目标是使用Mybatis Plus 实现简单的Mysql单表增删改查,不考虑事务等。 参考资料: Spring快速入门指南 MyBatis-Plus快速开始 前置条件 安装Mysql服务端,或已有Mysql服务端 Mysql已经有初始化库 test 表 User 数据库初始化表和数据数据库 test 中,已经初始化有一张 User...
spring boot入门(一) - Hello World
本文是spring boot的新手入门教程(一),目标是能让人快速简单上手和了解服务端的简单Web开发。通过本文,可以学习使用IDEA构建一个Spring boot应用,实现经典的”Hello World!” 参考资料: Spring快速入门指南 Spring boot 参考手册(官方) Spring 参考手册(官方) 前置条件 安装Java开发套件JDK 使用AdoptOpenJDK:Spring推荐 使用Oracle JDK: 2019年4月16日当天,Oracle发布了Oracle JDK的8u211和8u212两个版本(属于JDK8系列),并从这两个版本开始将JDK的授权许可从BCL换成了OTN!也就是从这两个版本开始商用收费了! 所以Oracle JDK的最后两个免费版本号为8u201和8u202,并且一般情况下,我们通常使用奇数版本,即8u201(官方下载地址)。 奇数偶数版本差异说明见:官方奇偶数版本说明 阿里巴巴Dragonwell 亚马逊corretto 华为毕昇JDK 安装集成开发环境 IntelliJ...
kolla-ansible部署高可用openstack
从未使用过openstack,本文是对高可用openstack的第一次安装尝试,没时间整理,安装完再慢慢熟悉,后续整理。按照openstack官方当前最新release是stein版本的,但是pip install kolla-ansible安装的kolla-ansible,通过pip show kolla-ansible 查看是7.1.1版本,对应的是rocky版本的。所以本篇的kolla-ansible根据 kolla-ansible用户指南,在Centos7.6服务器集群上尝试安装rocky版本的Openstack,后端采用ceph存储。kolla-ansible和openstack的版本需要对应起来,这很重要!参考资料: Openstack高可用离线部署(使用Kolla部署,后端存储使用CEPH) kolla-ansible 部署openstack(vmware,多节点,ceph存储) 本文主机配置 主机必须满足以下最低要求:...
tomcat8的配置优化
使用任何一个第三方工具、库等,都需要对工具和库的配置进行了解和测试(一般公司都没有做测试,直接使用,不投入时间测试,实际上在后期,重复使用、遇到问题、以及资源浪费的开销更大),本文当然…也没有做测试。。。只是参考网上的资料进行整合,同时结合本身生产环境上的大并发web部署,讲解如何配置tomcat8的参数,使得web更安全,并且支撑更高的并发量,更大的吞吐量,同时降低系统资源使用率。 当然,tomcat中的JVM参数配置对web性能的影响最大最明显,但是并非本文的重点,JVM的调优内容也很多,应该另开一个文章来讲解。我们这里只讲解tomcat容器本身的配置,主要是server.xml的配置优化。 安全配置 –基本拷贝至 Tomcat8安装, 安全配置与性能优化一般情况下,软件的漏洞信息和版本是相关的,因此,软件的版本号对于攻击者来说是很有价值的。所以,在使用第三方软件的时候,一定要注意隐藏软件的版本信息等。另外,有的还需要配置端口,黑白名单,权限。 隐藏版本信息 隐藏HTTP...