我的乐与怒

Life, thoughts, stories and ideas.

以太坊开发入门 - 实现ERC20合约

Truffle和ganache Truffle提供一个集成环境以简化合约的开发以及进行工程化.genache-cli则提供一个模拟的链上环境以便我们可以方便的进行测试.测试完成后再部署到私链或者测试链进行真正的测试和验证.提高我们的开发效率 安装 开始之前请升级到较新的node版本 npm install –g truffle npm install ganache --global ...

以太坊开发入门 - EVM

简介 在以太坊上最重要的活动除了转账以外,就是编译、运行智能合约(Smart Contract)。 智能合约代表了一个以太坊世界里的独立管家。它按照自身代码指示进行以太币的收入,支出活动,也具有一定存储空间可以存储一些数据。 而智能合约就是运行于以太坊虚拟机 (Ethereum Virtual Machine, EVM) 之上. 虚拟机上执行的操作分读操作和写操作,读操作因为不更改区...

以太坊开发入门 - 智能合约

Solidity 语言 智能合约使用Solidity语言进行开发, Solidity语法参考 Solidity 语言的一些特点: 没有浮点数 使用${wei}$来规避浮点运算. $ 1 \times {ether} = 1 \times 10^{18}{wei} $ 指数运算符 10**18 = 10^18 函数权限关键字在最后 函数默认是public 约定 p...

以太坊开发入门 - 搭建私链

背景 以太坊,英文全称 Ethereum,是一个全球协作的开源区块链项目。 该项目流通的加密货币称为以太币 (Ether),是全球仅次于比特币的第二大流通加密货币。 它最大的特色是具有一个运行时环境:以太坊虚拟机 (Ethereum Virtual Machine,简称 EVM), 为大规模分布式开放应用提供了运行的平台。我们可以在以太坊的虚拟机上开发智能合约实现NFT等一系列基于区块链的...

使用Kind搭建K8S学习环境

背景 K8S集群的搭建由于墙的存在比较麻烦而且也比较占用资源,个人学习搭建K8S学习使用和做一些测试推荐使用Kind来在本地搭建. 安装 前置条件需要先安装golang 1.16 或更新的版本. 低版本需要加上 GO111MODULE="on" 如果包无法下载,因为墙可以添加Go package的国内镜像, 设置阿里的镜像 go env -w GOPROXY=https:/...

使用Querydsl简化Spring JPA的查询

JPA的限制 一般项目中一定会使用到联表查询,使用JPA可以很方便的对单表进行CRUD操作,简单的关联操作通过设置关联关系也很容易实现.但是对于多表的联合查询就比较麻烦.使用Querydsl可以帮助我们很方便的构建复杂查询. MAVEN依赖 添加依赖 <dependency> <groupId>com.querydsl</groupId> ...

Maven的POM文件

根POM pom.xml文件包含了项目的信息和配置细节,指导Maven 如何进行构建.他通过继承根 pom来载入Maven的默认配置, 在这个文件中包含了大部分项目会使用到的默认值. 比如对target目录的定义,源文件src/main/java以及测试代码源文件src/test/java的路径定义.Maven执行时在当前目录查找pom.xml文件,读取POM文件获取到需要的信息来执行指定...

银联卡收单机构账户信息安全管理标准

ADSS简介 ADSS全称Account Data Security Standard ,即银联卡收单机构账户信息安全管理标准,由中国银联风险管理委员会审核通过,旨在加强银联卡收单网络账户信息安全管理,进一步明确和细化对收单业务各参与方账户信息安全管理要求,防范账户信息泄漏风险。 根据中国银联制定和发布的《银联卡收单机构账户信息安全管理标准》,在银联网络内从事银联卡收单业务的收单机构、向...

网络安全等级保护

等保定级 根据等级保护对象在国家安全、经济建设、社会生活中的重要程度,以及一旦遭到破坏、丧失功能或者数据被篡改、泄露、丢失、损毁后,对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的侵害程度等因素,等级保护对象的安全保护等级分为以下五级: 第一级,等级保护对象受到破坏后,会对相关公民、法人和其他组织的合法权益造成损害,但不危害国家安全、社会秩序和公共利益; 第二...

golang协程和channel使用

简介 协程是golang的一大特色和卖点. 协程(goroutine) 是轻量级的执行线程,使用go关键字到函数或者lamba表达式可以快速启动协程.协程函数的返回值会被抛弃.线程的调度由操作系统来管理,是抢占式调度。而协程不同,协程需要互相配合,主动交出执行权。 配置 GOMAXPROCS 设置逻辑CPU数量,一般情况下使用CPU核心数量值.使用足够的线程来提高golang的并行执行...