Tag: 程序

怎么样通过程序来获得比特币钱包余额? (NodeJs/Python)

我们可以通过两种方式来查询任意一个区块链上BTC比特币钱包的余额。 一种方式是直接查询节点,节点可以自己架,但可能较复杂,自己架服务器节点也不便宜。但是这种方法是可以获得较低的延时 (Latency),因为从节点取的数据本来就是链上的。当然可以撸别人的节点,如果节点可靠又需要获取更实时的数据那这是一种比较好的选择。 另一种方式就是使用第三方的API服务,这样的服务一般有免费还有付费的API调用。使用这些API节点的好处是更容易更简单,但会有一定的数据延时,因为API节点需要实时的去链上取数据,再更新到数据库中,再返还给调用者,有一点的时延。 本文介绍获取比特币帐号余额的两种调用第三方服务的方式:mempool 和 blockcypher。 通过 Mempool API 来查询指定比特币钱包地址的余额 我们可以使用 Mempool.space 的 API(有免费和付费版本的 API 调用)通过以下 NodeJs 函数检查任何 BTC/比特币钱包地址的余额: const axios = require('axios'); async function getBTCAddressBalance(btcAddress) { const …

通过程序来减少到交易所转帐出错的可能

虽然现在在STEEMIT上转帐到交易所的时候如果没有填写 MEMO, 是会提示的, 但是有时候你手快, 可能把你的帐号地址给复制过去然后就点发送了, 这时候就悲剧了. 很久之前, 我误操作100 SBD到 @blocktrades 就是把MEMO填成帐号地址了, 幸运的是通过各方途径联系了官方, 几个小时内收到了退款. 但是别的交易所, 如 bittrex 可能就不是这么的幸运了, 转帐转错了有时候权当捐款了. 是不是每次转帐的时候都提心吊胆, 生怕转没了? 其实你只要懂一点程序, 完全可以通过程序的方式来转帐, 程序只要调通了第一次, 之后再执行出错的可能性几乎没有了. 比如, 我的自动转帐脚本如下 (Python) from steem …

缓存 微信API的 Token

微信提供API接口, 使用接口的第一步是需要通过以下API获得一个 access token, 这个 token 目前有效期 2个小时. https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 如果在过期之前调用API将会返回同样的 token, 问题是这个API的调用次数每天是有上限的 所以我们需要尽可能的重复利用这个 token. 我们可以把这个 token 存到数据库或者文件中 只要不过期 就可以反复使用. 以下PHP脚本就提供了这样一个功能, 把获取的token和有效期存到文件中 只要不过期就提供缓存的值 这样可以减少调用微信API的次数(减少因调用API所带来的延时). define('APPID', '您的APPID'); define('APPSECRET', '您的APP SECRET'); define('TOKENFILE', …

软件分享: 智慧中国象棋 (Chinese Chess)

十年前(2005年)我本科的毕业设计做了一个中国象棋的 桌面程序 智慧 中国象棋 (Xiang Qi) 一款完全免费的 中国象棋 (Xiang Qi) 游戏 后来认识媳妇之后 改名成 ‘智慧’ 我俩名字的一个字. 最开始代码是在DELPHI 7下编译的 后来移到 DELPHI 2007 最近休假 又整了整代码 移到了 DELPHI XE8 下编译. DELPHI XE8 下支持 …

.NET 程序的保护 – 混淆

几乎所有软件程序都能被破解, 只是时间长短的问题, 国外有一个有名的组织是 ZeroDay 意思就是不用一天就可以破解任何软件. 有两种桌面程序,最常见的就是用 C++/Delphi 编写的 原生 native 代码,这样写出来的软件是不容易看到源代码的,因为编译器做了优化和处理.这样的代码的优点是执行速度快,效率高, 但是关键部分的代码,比如 License 验证,有经验的黑客还是很容易破解的. 俄罗斯有一个很有名的商业软件 VMProtect, 用于保护 native 代码,保护强度非常不错, 加壳,压缩,虚拟指令,防虚拟器,防调试程序等功能,保护出来的文件有时候会被一些杀毒软件认为是恶意的程序.因为用到了一些特殊指令,而杀毒软件无法分析.这种情况下可以通过联系杀毒软件公司将程序加入白名单里. .NET 程序是另一大类别.有点和 Java 类似, .NET 程序编译出来不是 本地代码 (Native),而是中间代码(类似JAVA的 ByteCode). …

程序上的画蛇添足

看到一段代码,差点没笑出来.原来的没法直接贴出来, 但大概意思是这样的.比如我们要顺便检查一个数组里是否有存在 0,那么可以这么写,很简单: bool hasZero = false; for (int i = 0; i < arr.length; i ++) { if (arr == 0) hasZero = true; doStuff(arr); } 但是有人却觉得这样太简单了,很不爽,非得要这样: bool …