202402-20 golang与-Laravel框架的 tymon/jwt-auth jwt互通 NEW 废话不多说,直接上代码package main import ( "errors" "fmt" "github.com/dgrijalva/jwt-go" "log" "ti... Read More >
202402-15 bitcoin core导入地址或者私钥 有什么区别 NEW 在 Bitcoin Core 中,导入地址和导入私钥是两个不同的概念,它们在安全性、控制权和使用方式上存在显著差异:导入私钥- **控制权**:导入私钥意味着你将拥有对应地址的完全控制权。你可以查看余额、发送交易,以及执行任何需要私钥的操作。- **安全性**:私钥是访问比特币的钥匙,因此它极为敏感。在 Bitcoin Core 中导入私钥后,私钥将存储在钱包文件中,通常受到加密钱包的保护。- **恢复钱包**:如果你备份了私钥,可以在任何安装了 Bitcoin Core 的... Read More >
202402-14 bitcoin core 列出钱包的所有地址 NEW 在 Bitcoin Core 中,列出钱包的所有地址可以通过使用 RPC 命令 `listaddressgroupings` 实现。这个命令会返回一个数组,其中每个元素都是一个包含地址和余额的数组。每个内部数组表示一组地址,通常是基于相同密钥生成的地址,它们共享相同的余额。以下是使用 `listaddressgroupings` 命令的基本步骤:1. 打开命令行界面。2. 使用 `bitcoin-cli` 工具调用 `listaddressgroupings` 命令:&nbs... Read More >
202402-13 bitcoin core中RPC接口listtransactions详解 在 Bitcoin Core 客户端中,`listtransactions` 是一个 RPC (远程过程调用) 命令,它用于列出属于特定账户或所有账户的最近交易。这个命令对于查看您的比特币地址上的资金流动非常有用。以下是 `listtransactions` 命令的一些基本用法:基本用法bitcoin-cli listtransactions这将列出默认账户(通常是 "" 或 "walletname")的所有最近交易。指定账户... Read More >
202402-12 bitcoin实现充值加余额功能 在比特币系统中,实现充值和增加余额的功能涉及到几个关键步骤,包括生成新的比特币地址、接收比特币转账、确认交易以及更新用户余额。以下是使用 Bitcoin Core 客户端实现这些功能的大致步骤:1. 生成新的比特币地址在 Bitcoin Core 的图形用户界面 (GUI) 中,可以通过以下步骤生成新的地址:- 打开 Bitcoin Core 客户端。- 点击 "接收" 标签页。- 点击 "新地址" 按钮(通常是一个加号图标)。- 系统... Read More >
202402-12 bitcoin core rpc 交易相关接口 Bitcoin Core 的 RPC (远程过程调用) 接口提供了多种与交易相关的命令,这些命令可以用于查询、创建和管理比特币交易。以下是一些常用的与交易相关的 RPC 命令:1. **getrawtransaction** - 返回特定交易的原始交易数据。 - 用法示例:`bitcoin-cli getrawtransaction "txid" true` - 如果第二个参数设置为 `true`,则还会返回... Read More >
202402-11 linux搭建BTC钱包 在Linux系统上搭建一个比特币(BTC)钱包,你可以选择使用Bitcoin Core客户端,这是比特币官方提供的全节点客户端。以下是使用Bitcoin Core搭建BTC钱包的基本步骤:比特币节点有很多实现bitcoin core:官方节点,c/c++实现,正式网络大多数都是用这个来运行全节点btcd:golang的实现版本,如果用golang来写一些功能,可以参考这个代码libbitcoin:c/c++实现,特点是它有较好的工具链parity-bitcoin:rust实现... Read More >
202402-11 区块链水龙头以及常用浏览器地址 1. 比特币BTC水龙头:https://coinfaucet.eu/en/btc-testnet/正式网浏览器地址:https://btc.com/https://explorer.bitcoin.com/btchttps://chain.so/btchttps://live.blockcypher.com/btc/https://www.blockchain.com/zh/explorer测试网浏览器地址:https://live.blockcypher.com/btc-... Read More >
202402-10 如何创建自己的私有以太坊区块链 以太坊(英文Ethereum)一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币提供去中心化的虚拟机来处理点对点合约。本文是在自己的电脑上启动自定义以太坊区块链的指南。请不要与在主要的以太坊区块链上启动节点相混淆,在这里,我们开始一个全新的独立区块链,这个区块链无法与太坊主网进行交互。启动您自己的以太坊区块链比公共测试网络更有用,更有教育意义,也更安全。学习建立私有测试网可以提供其他抽象概念的有形性,例如挖掘,网络对等,甚至geth datadir。在玩以太坊... Read More >
202402-01 golang中三种线程安全的MAP 一、map 是什么map 是 Go 中用于存储 key-value 关系数据的数据结构,类似 C++ 中的 map,Python 中的 dict。Go 中 map 的使用很简单,但是对于初学者,经常会犯两个错误:没有初始化,并发读写。1、未初始化的 map 都是 nil,直接赋值会报 panic。map 作为结构体成员的时候,很容易忘记对它的初始化。2、并发读写是我们使用 map 中很常见的一个错误。多个协程并发读写同一个 key 的时候,会出现冲突,导致 panic。Go... Read More >
202401-30 Gin 使用pprof 进行性能分析 在Gin框架中使用pprof分析性能1、导入需要的包 https://github.com/gin-contrib/pprof go get github.com/gin-contrib/pprof2、简单例子package main import ( "github.com/gin-contrib/pprof" "github.... Read More >
202401-03 第一行代码:以太坊-创建自己的私有区块链 本文会利用以太坊客户端(geth)搭建一个私有区块链,并在这个私有区块链上挖矿,通过本文的案例,读者可以更深入理解区块链、以太坊、挖矿的理论。通过阅读本文,您可以:掌握搭建以太坊开发环境的方法掌握geth的基本使用方法了解如何启动JavaScript控制台掌握建立一个私有区块链的步骤掌握如何在私有区块链上挖矿1. 以太坊(Ethereum)开发环境搭建在玩以太坊之前,首先要搭建以太坊的开发环境。第一步就是安装geth。那么geth是什么呢?geth(或称为go-ethereu... Read More >
202401-02 在Golang中怎么使用以太坊ABI 以太坊(ethereum)是一种开源的区块链平台,它允许任何人在上面构建分布式应用程序。其中最有名的就是以太币(ether),它是以太坊网络的主要加密货币。ethereum平台也支持智能合约的开发,通过智能合约,开发者可以创建去中心化的应用程序(dapps),包括去中心化交易所、去中心化组织、去中心化游戏等。当一个DApp与以太坊交互时,它必须使用以太坊的API,称为以太坊ABI。ABI代表“应用程序二进制接口”,它定义了智能合约的函数和事件,以及如何将数据编码和解码进行通信... Read More >
202401-01 区块链简易公链从0到1开发手册 从0到1简易区块链开发手册V0.1从0到1简易区块链开发手册V0.2-创建钱包 http://blog.51cto.com/clovemfong/2161923 从0到1简易区块链开发手册V0.3-数据持久化与创世区块 http://blog.51cto.com/clovemfong/2162169 从0到1简易区块链开发手册V0.4-实现转账交易的思路分析 http://blog.51cto.com/clovemfong/2163057 从0到1简易区块链开发手... Read More >
202311-18 golang实时通信的服务器推送机制 EventSource(SSE) 简介 简介不知道大家有没有见过 Content-Type:text/event-stream 的请求头,这是 HTML5 中的 EventSource 是一项强大的 API,通过服务器推送实现实时通信。与 WebSocket 相比,EventSource 提供了一种简单而可靠的单向通信机制(服务器->客户端),实现简单,适用于许多实时应用场景。本文将介绍 EventSource 的简单使用、与 WebSocket 的对比以及其优缺点,最后对其进行总结。EventSource客... Read More >
202311-17 golang中gin配合nginx写一个SSE服务程序 简介Server-Sent Events (SSE) 技术是浏览器向服务器发送请求并保持长连接的技术,服务器通过长连接将数据推送到浏览器。SSE通常用于实时更新网页内容或获得服务器推送的通知。体验过 ChatGPT 官方 Web 工具的同学, 应该了解, AI 对话返回的结果, 不是一次性返回的, 而是会在一段时间内, 持续输出, 就像是人在说话时, 有序地说出每一个字一样.它是如何实现的呢, 通过 Chrome 检查工具, 可以看到, 它返回的内容类型 (Content-T... Read More >
202311-09 Golang -- openwechat微信发送消息、自动回复 该 Demo 使用开源项目 openwechat ,实现获取好友列表、为好友发送消息、图片或文件,接收来自好友或群组的消息并设置自动回复等功能。项目入口代码很简单,就是调用一下微信的启动方法即可启动微信package main import ( "fmt" "github.com/eatmoreapple/... Read More >
202311-08 微信网页版接口详解 本系列会讲述微信机器人技术的实现,第一讲主要了解微信网页版给我们提供的http接口,这一步是做一个基于微信网页版机器人的基础和难点。本讲将微信网页版的主要接口罗列出,并给出了入参和返回值的含义和用法,也欢迎大家与我交流。一、网页版微信提供的HTTP接口1、获取uuid 说明:用于获取显示二维码以及登录所需的uuid,标识获取二维码和扫码的为同一个用户 请求方式:GET &nb... Read More >
202309-05 Go1.20 继续小修小补 errors 库 Go 的错误处理机制一直是无数人提了又争,被拒了又提的地方。最近 Go1.20 即将发布,针对 errors 标准库,有一个新的小修小补优化(wrapping multiple errors)。今天来学习这个三顾茅庐最终不怎么成功的阉割版提案。回顾 Go1.13 改进 errors在 Go1.13 中,errors 标准库引入了 Wrapping Error 的概念,并增加了 Is/As/Unwarp 三个方法,用于对所返回的错误进行二次处理和识别。简单来讲,Go 的 err... Read More >
202308-09 go语言中常用的功能之七(二维数组按某列排序) 前言有时候我们需要根据切片中的某个字段进行切片排序,但sort包中只有默认基本类型 int 、 float64 和 string 的排序,所以我们可以手动实现sort包的 sort.Interface 接口,来完成自定义排序。这个接口有三个方法 Len() 、 Less(i,j) 和 Swap(i,j) 。1. 普通排序 a := []int{4,5,7,3,2} sort.Ints(a) fmt.Println(a)浮点和str... Read More >