配置长安链
长安链部署和配置
安装
安装kubectl
- https://kubernetes.io/zh-cn/docs/reference/kubectl/
- 在根目录
mkdir .kube
,将config文件cp到该目录下
本地安装长安链2.3.1
安装go
1
2
3
4
5
6
7
8
9
10
11
12
13
14wget https://golang.google.cn/dl/go1.18.10.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.16.13.linux-amd64.tar.gz
vi /etc/profile
# 加入配置
export PATH=$PATH:/usr/local/go/bin
# 配置生效
source /etc/profile
# 换源
go env GO11MODULE=on
go env -w GOPROXY=https://goproxy.cn安装7.3版本以上的gcc
安装7zip
- ```bash
sudo apt-get install p7zip-full p7zip-rar1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
- 安装docker,参考https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
- 下载gitlab的pre仓库
- https://gitlab.distribute-compute.cn/chenzhu/pre
- 安装完毕后测试智能合约是否能部署
## 部署到云
- 修改改k8sconfg/4.yml和Makefile里面的版本/命名空间
- build docker
- `make docker-solo`
- 提交docker,这部分需要
- `docker login -u xxx -p xxx xxx.myhuaweicloud.com`
- `make push`
- 进入docker执行命令
- `kubectl exec docker-name -it /bin/bash -n mj`
- 停止运行
- `make configFdown`
- 在dockerfile中设置需要打包为docker的文件
# SealEVM
长安链EVM有两个开源仓库,不尽相同
- github:https://github.com/SealSC/SealEVM
- gitlab:https://git.chainmaker.org.cn/chainmaker/vm-evm
gitlab的报错且没有文档
```bash
# chainmaker.org/chainmaker/vm-evm/v2/evm-go/storage
evm-go/storage/contractStorage.go:92:36: too many arguments in call to c.Ctx.CallContract
have (*common.Contract, *common.Contract, string, nil, map[string][]byte, number, common.TxType)
want (*common.Contract, string, []byte, map[string][]byte, uint64, common.TxType)
evm-go/storage/contractStorage.go:206:13: undefined: "chainmaker.org/chainmaker/utils/v2".NameToAddrInt
evm-go/storage/contractStorage.go:351:36: too many arguments in call to c.Ctx.CallContract
have (*common.Contract, *common.Contract, string, []byte, map[string][]byte, uint64, common.TxType)
want (*common.Contract, string, []byte, map[string][]byte, uint64, common.TxType)
evm-go/storage/contractStorage.go:359:36: too many arguments in call to c.Ctx.CallContract
have (*common.Contract, *common.Contract, string, []byte, map[string][]byte, uint64, common.TxType)
want (*common.Contract, string, []byte, map[string][]byte, uint64, common.TxType)
- ```bash
github的SealEVM能运行
1 | go mod download |
不支持PUSH0,因此虚拟机不支持shanghai分叉,支持使用solc 0.8.23 设定evm version为paris
- 目前的sealevm已经支持
gas计价混乱,只出现了0x3和SSTORE的两个值
- STOP计价为0x3
- 存在stack underflow at issue
vm-evm
单测可以通过