Tag: Javascript

如何构建一个具有重试机制的 Steem 区块链见证人投票检查器

当使用像 Steem 这样的去中心化平台时,重要的是要预期偶尔的故障——网络问题、API 限制或暂时的停机。这就是为什么你构建的任何集成、机器人或工具都应该能够优雅地失败并智能地恢复。 在这篇文章中,我将带你了解一个简单而强大的 Steem 区块链见证人(也就是STEEM上的矿工)投票检查工具: 第一版:检查是否由某个见证人投票 这是一个实用的 Node.js 函数,用于检查一个 Steem 用户是否投票支持了某个特定的 见证人——无论是直接投票还是通过代理。 function is_voted_by(witness, id) { return new Promise((resolve, reject) => { steem.api.getAccounts(, function(err, response) { if …

如何轻松创建并托管你的 GitHub Pages 站点 (无服务器静态应用)

创建一个 GitHub Pages 站点是一个简单的过程,可以免费为你的个人、项目或组织创建网站/博客。按照此指南开始。 步骤 1:创建 GitHub 仓库 登录你的 GitHub 账户。 点击“新建”来创建仓库。 对于个人站点,命名为 .github.io。 对于项目站点,使用任何有效的名称。 步骤 2:添加你的站点文件 使用以下命令克隆仓库到本地机器: git clone https://github.com/<username>/<repository-name>.git 创建一个 index.html 文件,包含你想要的内容。这里是一个例子: <!DOCTYPE html> <title>我的 GitHub 页面</title> …

Sui 区块链编程: 通过 NodeJs/Javascript 函数获取 Gas 费用

在区块链开发的世界中,理解和管理gas费用对于优化交易至关重要。Sui作为一个相对较新但功能强大的区块链平台,有其独特的方式来处理gas价格。让我们来探讨如何使用Node.js和JavaScript获取Sui的gas价格。 Sui中的Gas理解 在区块链语境中,gas指的是执行交易或智能合约所需的费用。在Sui中,gas以MIST计量,其中1个SUI等于10^9个MIST。这意味着gas价格通常以每个交易或操作的MIST来报价。 获取Gas价格 这里有一个简单的异步函数来从Sui节点获取当前的gas价格: const QUICKNODE_URL = "https://sui-mainnet-endpoint.blockvision.org"; // 你可以使用你自己的节点。 async function getGasPrice() { try { const response = await axios.post(QUICKNODE_URL, { method: "suix_getReferenceGasPrice", jsonrpc: "2.0", id: 1, …

Sui区块链编程: 获取最新块高度(NodeJs/Javascript函数 Latest Block Number/Height)

获取最新区块号(高度)是开发人员在去中心化系统中常见的任务。如果你正在使用 Sui 区块链,并希望通过 Node.js 和 JavaScript 获取最新的区块高度,以下是一个简单的实现方法。 Sui 是一个高性能、可扩展的区块链,以低延迟和创新架构而闻名。与 Sui 的交互需要利用其 API,这些 API 允许开发人员无缝查询区块链数据并与智能合约交互。首先,确保你已在计算机上设置了 Node.js 环境并安装了必要的依赖项。 了解 Sui 区块链:Sui区块链简介 首先,创建一个新的 Node.js 项目。你可以使用以下命令初始化项目: mkdir sui-block-height cd sui-block-height npm init -y …

怎么样计算STEEM区块链的上线率(UpTime)和宕机时间(DownTime)

判断一个区块链是否靠谱有一个指标就是看链跑的时间久不久, 还有就是上线率/Uptime和宕机时间/Downtime, 有点类似计算服务器的上线时间. 不靠谱的链一般没几多久就停了(Halted). STEEM区块链不算新链了, 已经跑了有7年之久, 我很好奇STEEM链的上线时间和故障率, 本文就来计算一下. STEEM在过去因为链的BUG停过几次, 我记得有一次是STEEM在硬分叉的时候引起了新的资源计算模型, 但有BUG, 导致链停了, 虽然当时Steem Inc组织程序员紧急改BUG, 再号召见证人同时重启链, 不过那几天折腾过程中停了有2-3次吧. 比特币BTC据说到现在为止历史上一共停过两次. 创世纪块和时间 Steem Genesis Block and Time 每条区块链都有一个创世纪块, 也就是第一块, STEEM上的创世纪块是在 2016-03-24 16:05:00. 产生一块所需要的时间 …

ChatGPT 使用 Promise.All 重构/重写代码(并行发送请求)

在我的一个项目中, 我有以下代码(Node/Javascript), 它(顺序)调用了一些 API. 这些 HTTPS 请求其实是可以并行完成的, 因为它们相互独立. 然后结果会被聚合到一个数组中. 我知道可以用Promise.all来把这些请求并行化, 我就问了ChatGPT怎么弄, 看看它是否能理解并给出正确的代码: 我先用英文问 ChatGPT-3.5: Rewrite the following Python code using the Promise.all to parallelize the requests: let result = …

Microbit 游戏编程: 贪心算法也无法让贪吃蛇永生

上一次, 我们介绍了在Microbit上编写最简单的贪吃蛇游戏(Microbit 游戏编程: 不会吃胖的贪食蛇 (自带人工智能)), 不过只是个原形, 因为那只蛇并不会长胖, 有网友说更像是一个男孩爱上一个女孩疯狂的爱情故事. 这一次, 我们将对游戏的关键部分进行修改, 不过考虑到整个 Microbit 的屏幕才25个像素点, 我们加个限制让蛇在长度为10的时候停止生长, 这样的话, 只要你玩得好, 游戏能一直进行下去. 贪吃蛇的身体 由于蛇的身体不再是单个game.LedSprite对象, 我们将需要将蛇的身体块存储在数组中. 我们可以定义一个initSnake函数, 该函数需要传进一组蛇身体坐标并创建相应的精灵数组. function initSnake(arr: Array<number>) { let result = …