oflyhigh avatar

每天进步一点点:如何在LINQPad中使用HafSQL

oflyhigh

Published: 15 Dec 2025 › Updated: 15 Dec 2025每天进步一点点:如何在LINQPad中使用HafSQL

每天进步一点点:如何在LINQPad中使用HafSQL

你知道如何从HIVE链上获取数据嘛?直接访问各个DAPP(比如hive.blog, peakd.com等)无疑是个办法,或者访问区块链浏览器获取一些更底层的数据,又或者我们可以通过API直接从hived节点获取数据。

image.png
(图源 :pixabay)

但当我们想获取一些更为复杂的数据时,以上方法都显得无能为力,比如说统计中文区失联(长时间没有发帖)用户的情况,或者查询HP代理(代理进来),等等等。

这时候就要用到一些比较复杂的工具了,比如说HIVESQL(由arcangeHive account@arcange 维护的SQL Server database),长久以来我都在通过LINQPad,访问HiveSQL来获取和分析一些我想要的数据,带给我极大的便利。

对了,好多年前furionHive account@furion 还提供过 MongoDB来访问区块链数据,但是还简单地学习和了解一下 MongoDB的使用——但那已经是上古时期的事情了。

HAF以及HafSQL

其实,访问HIVE底层数据还有一个选择,那就是使用Hive 应用框架(HAF,Hive Application Framework),简单来讲就是在HIVED和Hive应用(DAPP)之间的一个中间层——它自动地将HIVE区块链上的数据推送至PostgreSQL数据库,方便应用的查询和使用,无比强大!

现在我们在用的很多HIVE杀手级DAPP都是基于HAF构建——所以这些DAPP功能也十分强大,用起来也无比顺滑。

但是对于个人用户,又或者是轻量级DAPP构建者来讲,自己去搭建HAF,很是耗费精力不说,还要耗费大量的金钱(需要大内存+大存储容量的服务器),当然了——还不一定搞得定!

所幸,大佬 mahdiyariHive account@mahdiyari 提供了公共的HAF database,让我们可以零成本迅速地开始使用HAF,详情可以参考:

[Proposal] Public HAF database & HafSQL maintenance

前边说过,我一直使用LINQPad访问HiveSQL,那么LINQPad是否可以访问PostgreSQL数据库呢?以便于我直接使用mahdiyariHive account@mahdiyari 的公共数据库。

我尝试里两种方式,这里分享给大家。

LINQPad添加HafSQL连接:失败的尝试

第一种方式,安装驱动(以失败告终)。

打开LINQPad添加连接的选项,会出现如下界面:
e89d0b1d77ea14cacbc34ee1353728fd.png

点击下边的查看更多驱动
081f297c421ea5ee665c9e0fd51c290b.png

选择安装第一个
ecb190916ea9debbeb1a33d9500a85ed.png

貌似安装成功了
a06f1d500b0c42b6d0d4ae3cbf0577ce.png

但是使用不了
69211b8f00d9c8f9de7e4fbbf4b8d653.png

简单了解了一下,据说是linq2db.LINQPad 最后支持的是 LINQPad 6 / .NET Core 3.1,我用的是LINQPad 7,这就尴尬了。

LINQPad添加HafSQL连接:第二种方法

我就纳闷,LINQPad这么好用的工具怎么能不带PostgreSQL 连接驱动呢?事实上我冤枉它了,它还真带PostgreSQL支持,只是我一时没有找到。

经过我一番探索,总算找到了相应的操作方法,可以直接在LINQPad中连上PostgreSQL数据库啦。

打开LINQPad添加连接的选项,选择Entity Framework Core(实体框架 Core)
039eb51bf1071275907d1dc8272faeff.png

咦,原来可以在这里进行各种配置呀
c0dc408f148d797f39f16dc718693593.png

填入mahdiyariHive account@mahdiyari 提供了公共的HAF database的相应配置
ea577dc56c65cc2f95df2997f6627f1e.png

之后就可以愉快地使用公共的HAF database进行各种查询啦。

查询示例

测试一下查询最新十个被创建的账户

SELECT *
FROM accounts
ORDER BY created_at DESC
LIMIT 10;

我们会得到类似如下数据(不完全截图):
4c849b6c7ab7a7ab37fb446de37aa0b1.png

更多细节以及更多使用方法正在慢慢探索中。

再次感谢大佬mahdiyariHive account@mahdiyari 提供了公共的HAF数据库,大家还没给相应提案投票的,可以考虑去投票支持一下(Public HAF database & HafSQL maintenance #359)提案。

另外大家也可以考虑去投票支持一下arcangeHive account@arcangeHiveSQL Proposal - Keep It Free To Use For The Community #329)提案,这个提案一直没通过阈值,我觉得还是挺遗憾的。

(HIVE中文社区已经将治理票投票权代理给我的小伙伴可以不用操作,我早已投票支持了两位大佬的相关提案哦)

相关链接

Leave 每天进步一点点:如何在LINQPad中使用HafSQL to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh