以太坊简介

简介

以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。

社区地址:https://ethereum.org/zh/

什么是区块链?

对区块链最好的描述是将其描述为一个公共数据库,它由网络中的许多计算机更新和共享。

"区块"指的是数据和状态是按顺序批量或"区块"存储的。 如果你向别人发送 ETH,需要将交易数据添加到一个区块中才算成功。

"链"指的是每个区块加密引用其父块。 换句话说,区块被链接在一起。 在不改变所有后续区块的情况下,区块内数据是无法改变,但改变后续区块需要整个网络的共识。

什么是 WEB3?

Web3 简介

中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。 与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。

Web3 是摆脱这一困境的方案。 不同于科技巨头垄断的传统互联网,Web3 采用去中心化,由所有用户构建、运营和拥有。 Web3 将权力赋予个人而非公司。 在我们讨论 Web3 之前,先来看看我们是如何走到这一步的。

早期的网络

大多数人认为互联网是现代生活的一个持续支柱—自发明出来后就一直存在。 然而,我们今天大多数人所熟知的互联网与最初的想象有很大不同。 为了便于理解,可以将过去短暂的互联网历史分为两个时期—Web 1.0 和 Web 2.0。

关于x86、x86_64、x64、amd64和arm64、aarch64的区别

前言

当我们在安装docker或选择docker image镜像时,都需要根据当前服务器的系统和CPU架构来选择对应的软件包或镜像,比如安装docker-compose:

  • docker-compose-linux-aarch64
  • docker-compose-linux-armv6
  • docker-compose-linux-armv7
  • docker-compose-linux-ppc64le
  • docker-compose-linux-riscv64
  • docker-compose-linux-s390x
  • docker-compose-linux-x86_64

或在hub.docker上选择基础镜像时,考虑OS/ARCH:

  • linux/386
  • linux/amd64
  • linux/arm/v6
  • linux/arm64
  • linux/ppc64le
    ...
    等等,那常用的CPU架构都有哪些呢,下面我们就来进一步认识下常用的CPU架构。

不同CPU架构的区别:

CPU架构描述
i38632位AMD/英特尔CPU
x86_64/x86/amd6464位AMD/英特尔 CPU的别称
AArch32/arm/ARMv1到ARMv732位ARM CPU的别称
AArch64/arm64/ARMv8/ARMv964位ARM CPU的别称
rv64gc/rv64g64位RISC-V CPU的别称
ppc64le64位PowerPC CPU(小端字节序存储)

docker容器自定义jdk镜像

前言

有官方的jdk镜像,为什么还要自定义jdk镜像?
当我们在官方镜像中找不到我们所需要的版本时,就可以单独下载指定版本的安装包,然后根据安装包自定义jdk镜像。

本文以jdk1.8.0_181为例,详细讲述自定义jdk镜像的步骤。

docker和docker-compose版本说明:

C:\Users\whwtr>docker -v
Docker version 20.10.17, build 100c701

C:\Users\whwtr>docker-compose -v
docker-compose version 1.29.2, build 5becea4c

C:\Users\whwtr>

说明:如果是Windows或macOS系统直接安装docker-desktop即可。

MyBatis多数据库支持databaseId为null问题解决

本文主要讲述MyBatis多数据库支持databaseId为null的问题如何解决,在此之前,我们先来看下Mybatis如何配置支持多数据库。

MyBatis多数据库支持

让一个项目支持不同的数据库在企业开发中是一个比较常见的需求,即一套代码兼容不同的数据库。由于不同的数据库支持的sql语法稍有差别,所以某些功能需要根据数据库的不同书写不同的sql语句。对于这种需求,首先能够想到的解决方案就是针对不同的数据库维护不同的mapper.xml文件,但是这种方案会严重增加开发和维护的成本。因为不同数据库支持的语法大部分都是相同的,不同的毕竟是少数,我们希望只重写不同的部分而重用相同的部分。

针对这种情况,MyBatis提供了解决方案,即databaseIdProvider和databaseId。通过MyBatis提供的这种功能,我们就只需要维护一套mapper.xml文件即可。