docker_go

package module
v0.0.0-...-3fb78a3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2022 License: Apache-2.0 Imports: 34 Imported by: 1

README

vm-docker-go

介绍

hercules 链docker-go智能合约虚拟机模块

软件架构

软件架构说明

安装教程
  1. xxxx
  2. xxxx
  3. xxxx
使用说明
  1. xxxx
  2. xxxx
  3. xxxx
参与贡献
  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request
特技
  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientManager

type ClientManager interface {
	PutTxRequest(txRequest *protogo.CDMMessage)

	PutSysCallResponse(sysCallResp *protogo.CDMMessage)

	RegisterReceiveChan(chainId, txId string, receiveCh chan *protogo.CDMMessage) error

	DeleteReceiveChan(chainId, txId string) bool

	GetVMConfig() *config.DockerVMConfig

	GetUniqueTxKey(txId string) string

	NeedSendContractByteCode() bool

	HasActiveConnections() bool
}

type DockerManager

type DockerManager struct {
	// contains filtered or unexported fields
}

func NewDockerManager

func NewDockerManager(chainId string, vmConfig map[string]interface{}) *DockerManager

NewDockerManager return docker manager and running a default container

func (*DockerManager) NewRuntimeInstance

func (m *DockerManager) NewRuntimeInstance(txSimContext protocol.TxSimContext, chainId, method,
	codePath string, contract *common.Contract,
	byteCode []byte, logger protocol.Logger) (protocol.RuntimeInstance, error)

func (*DockerManager) StartVM

func (m *DockerManager) StartVM() error

StartVM Start Docker VM

func (*DockerManager) StopVM

func (m *DockerManager) StopVM() error

StopVM stop docker vm and remove container, image

type RuntimeInstance

type RuntimeInstance struct {
	ChainId       string // chain id
	ClientManager ClientManager
	Log           protocol.Logger
	// contains filtered or unexported fields
}

RuntimeInstance docker-go runtime

func (*RuntimeInstance) Invoke

func (r *RuntimeInstance) Invoke(contract *commonPb.Contract, method string,
	byteCode []byte, parameters map[string][]byte, txSimContext protocol.TxSimContext,
	gasUsed uint64) (contractResult *commonPb.ContractResult, execOrderTxType protocol.ExecOrderTxType)

Invoke process one tx in docker and return result nolint: gocyclo, revive

Directories

Path Synopsis
pb

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL