08 2023 档案
摘要:在以太坊网络中,每个地址(也称为公钥哈希)确实对应一个相应的私钥。以太坊使用椭圆曲线密码学(Elliptic Curve Cryptography,ECC)来生成公钥和私钥对。 具体而言,以太坊使用椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorit
阅读全文
摘要:Solidity 中的 pure 和 view 是函数修饰符关键字,用于声明函数的属性和行为。它们的作用如下: pure 关键字:用于声明函数是纯函数,即函数不读取或修改合约的状态变量,并且不与外部合约进行交互。纯函数只根据输入参数计算结果,并返回一个值。 纯函数不会改变合约状态,也不会发送交易或调
阅读全文
摘要:以太坊的事件(Event)机制是一种在智能合约中定义和触发事件的方式,用于实现合约与外部世界的通信和提供交易的可追溯性。事件机制可以让智能合约在特定条件满足时触发事件,并将相关信息记录在以太坊区块链上的日志中。 以下是以太坊事件机制的主要特点和使用方法: 定义事件:在 Solidity 合约中使用
阅读全文
摘要:在Solidity中,fallback和receive是特殊的函数,用于处理合约接收以太币的情况。 Fallback 函数 (fallback()): 当合约接收到以太币时,如果没有匹配的函数调用或无效的调用,就会触发回退函数。 回退函数是合约的默认函数,没有函数名,且不接受任何参数。 回退函数通常
阅读全文
摘要:1. payable介绍 在Solidity中,payable是一个修饰符(modifier),用于声明函数或合约可以接收以太币(Ether)的支付。 当一个函数被标记为payable时,它就可以接收以太币作为函数调用的一部分,并且可以在函数体内执行相关的逻辑来处理这笔支付。 以下是一些关键点关于p
阅读全文
摘要:刚学,先来个helloWeb3 编译器采用remix:https://remix.ethereum.org/ 写一个helloworld合约: 新建一个文件:helloworld.sol: // SPDX-License-Identifier: MIT pragma solidity ^0.8.19
阅读全文
摘要:要在Mac系统上构建适用于Linux 64位的Go程序,可以采用以下2种方式: 1.通过设置环境变量并使用交叉编译来实现 以下是在Mac系统上构建适用于Linux 64位的Go程序的步骤: 在你的项目根目录下,打开终端。 设置环境变量 GOOS 和 GOARCH 为 linux 和 amd64,分别
阅读全文
摘要:简介:以太坊是一个开放的区块链平台,允许开发者创建各种智能合约。智能合约是一种能够自动执行合约条款的计算机程序。以下是以太坊中常见的合约类型及其用途的概述。 ERC-20 合约: 简介:ERC-20 是以太坊上最常见的代币标准合约。 用途:用于创建可互换的代币,如加密货币、代币发行、ICO 等。 E
阅读全文
摘要:原始数据库表如下: CREATE TABLE `events` ( `id`int(11) unsigned NOT NULL AUTO_INCREMENT, `status` enum('on','off') COLLATE utf8_unicode_ci NOT NULL COMMENT '开关
阅读全文
摘要:根据提供的错误信息error(*github.com/ethereum/go-ethereum/rpc.jsonError) *{Code: -32000, Message: "already known", Data: interface {} nil},这是一个来自以太坊的 JSON-RPC 错
阅读全文
摘要:根据提供的错误信息error(*github.com/ethereum/go-ethereum/rpc.jsonError) *{Code: -32000, Message: "nonce too low", Data: interface {} nil},这是一个来自以太坊的 JSON-RPC 错
阅读全文
摘要:在Go语言中,结构体不支持继承。Go语言没有类的概念,因此结构体之间不能像面向对象语言中的类继承一样进行继承。 相反,Go语言中的结构体可以通过在一个结构体中嵌入另一个结构体来实现类似继承的效果,这被称为结构体嵌入或匿名字段。 以下是一个示例,展示了如何使用结构体嵌入来模拟继承的效果: go Cop
阅读全文
摘要:以下的代码段在执行写入通道的时候会发生阻塞: spaceId2badgeDatasChan := make(chan map[int32][]*badgeV1.BadgeData) spaceId2badgeCountChan := make(chan map[int32]int32) var ge
阅读全文
摘要:以下这样的循环代码,最后会发现spaceId都是同一个!!!! for _, spaceId := range spaceIds { task := func() { uc.log.WithContext(ctx).Errorf("SpaceUsecase::GetSpaces uc.badgeCl
阅读全文