⑴ 手把手教你搭建比特币卫星接收节点
原文: https://hackernoon.com/building-your-own-bitcoin-satellite-node-6061d3c93e7
比特币区块链实际上是一个账本,所以需要将全部交易信息包含在账本内,从而体现每个比特币的所有权。账本需要在节点之间相互广播,以达到分布式备份账本的目的,这是比特币的关键特征。目前,节点广播几乎完全依赖互联网,这给比特币带来了潜在的「单点故障」问题,降低了整个网络的稳健性和安全性。
例如,海底光缆出现故障,或受政策影响的针对性断网都可能导致大范围的网络断连,从而影响该地区比特币节点的同步,损害比特币的可用性。
同步卫星的出现,减少了比特币对互联网的依赖,使节点同步可以通过接收卫星信号的形式完成。只需要一个卫星天线和一个接收器,就可以接收从卫星传来的区块数据,保持节点同步。同时,这也降低了运行节点的成本,在某些欠发达地区,网络连接费用高昂,使用卫星同步区块数据可以省下网费,让更多人有机会运行节点,从而提高比特币的覆盖率。
国外早有大神自制了卫星接收节点,本文将其整理成简略教程,供大家参考。
首先调节三脚架高低。
然后将卫星盘连接到三脚架上,并调节方位和高低。
然后将高频头安装到高频头支架上。
如果一切顺利,你的卫星天线应该是这样的。
使用 F 转接头将 SDR 连接到高频头电源上,然后使用同轴电缆将高频头也连接到电源上。连接前需要确认电源与 SDR 是匹配的,否则错误的电源将损坏 SDR。
Blockstream 为所需软件提供了预建的二进制文件。
打开「终端」后,输入
回车输入密码,密码是安装时设置的。然后可以看到待更新列表,输入 y,回车。
升级结束后,重启。
在「终端」中,输入
回车后屏幕出现 Is this ok [y/N],输入 y,回车。
完成后,将 Blockstream Satellite 在 Github 的库克隆到本地,创建一个项目。
首先要创建卫星接收器,输入如下命令:
安装好后开始克隆 Github 库
去刚才克隆好的文件夹
现在我们已经准备好所有 gr-framer GNUradio 模组需要的软件了,开始执行安装脚本:
输入密码
创建 gr-framers
恭喜,你已经安装了 gr-framers GNUradio!
现在开始执行 Blockstream GNUradio 安装脚本:
创建 Blockstream 模组
现在已经安装好 Blockstream 模组了。
我们需要设置 PYTHONPATH 和 LD_LIBRARY_PATH,来让接收器正常工作:
到这里,所有关于 GNUradio 的设置都已经完成了!
安装相关软件:
安装 FIBRE 相关软件
现在,克隆 FIBRE 库:
然后去克隆的文件夹:
开始创建:
现在创建 FIBRE
(此处可以添加 -jn 来加速编译,其中 n 是 cpu 核心数。如果你是四核处理器,就输入命令 make -j4)
已完成创建
完成后,开始安装:
FIBRE 安装好了
FIBRE 已经安装好了!你现在可以开始同步,或者将已经同步好的节点复制过来。
到此为止,你已经准备好前期工作,下面开始对齐卫星盘。
Blockstream 目前有 5 颗卫星,确定你所在地区被哪一颗所覆盖。
可在 Blockstram 官网 查询:
本文选择的是 Galaxy 18 卫星。
官网也有对齐工具,你可以输入你的地址或经纬度,它会告诉你如何调整天线的高度、方位和极性。这里是 对齐工具 。
为了得到一个 Galaxy 18 大概的可视化方位,我用了 SatellitePointer 这个 App。
确保在视线的 30 度之内没有建筑、树、或其他遮挡物。理想的视线是这样的:
视线越好,你接收的信号也就越好。
当你已经确定好卫星盘的摆放地点,你可以开始设置方位和高度。
信号质量与高度角密切相关,所以把高度角调节得越准确越好。
当你觉得高度已经调好了,就可以开始设置高频头的方位了。
设置高频头极性有点难办。我用了 SatellitePointer 这个 App 来帮助设置。我把手机的顶边贴近高频头底部的平边(图中红线处),然后看 App 中的指示:
虽然高频头上也有角度器,但是我觉得 App 更方便。
在启动接收器之前,你需要确定卫星的频率,并将其输入 rx_gui.py 文件。之前的教程里已经说过如何查询频率了。我使用的 Galaxy 18 卫星的频率是 12022.85 MHz。
要计算输入到 rx_gui.py 的频率,需要用卫星频率减去你高频头的 LO 频率。本文使用的高频头 LO 频率为 10750 MHz,因此最后的结果是 1272.85 MHz。
需要将 MHz 转化为 Hz,最后结果是 1272850000 Hz。
现在你可以将频率和增益(设为 40 即可)写入文件中,然后运行。
rx_gui.py 文件在 Blockstream 库的 satellite/grc 文件夹中。
当你运行 rx_gui.py 时,会弹出一个窗口。我们需要用到 FLL In 这个选项卡。
图形显示波动很大,刷新很快。要解决这个问题,你可以设置一下 average 参数,设为 15 即可。
缓慢地左右旋转卫星盘,观察 FLL In 的变化。我同样用了之前的 App 来帮助寻找方位。
如果你成功了,你会看到如下所示的图表。
现在你需要调整方位(左右)、高度(上下)和高频头的极性,来让信号更好。最后会得到如下所示的图表。
要确认你的信号是好的,你可以到 Abs PMF Out 选项卡,看一下有没有峰值。
你也可以到 Costas Sym Out 选项卡去看散点图。
最后,「终端」会显示:
恭喜!你成功对齐了卫星盘!
输入指令:
可以在 debug.log 文件中看到有没有成功接收区块,如果你看到如下的信息:
那么就已经成功了!
现在,你可以断网,试着只通过卫星来接收区块。
⑵ 如何尽可能的保证钱包安全,带你囤币穿越熊市
转自 Daniel
手把手教学怎么尽可能的保证钱包安全
非常适合囤币党如何保护自己的币
理论小知识:什么是助记词,私钥,钱包
现在常见的钱包基本上都是用助记词生成私钥,私钥可以计算出公钥,进而转化成钱包地址。常见公链钱包的助记词基本上都是根据BTC的BIP-32协议,由12-24个单词组成,然后生成HD钱包。HD钱包区别于单个私钥钱包不同的点在于,可以根据助记词+derivation_path生成多个钱包,这也是为什么钱包软件可以直接根据一个身份钱包直接生成多个钱包的逻辑。
基于这些理论,几乎所有公链都可以用同一个助记词去生成多个钱包,也就是有一个助记词几乎通用所有公链,保管好一个助记词即可玩遍所有链。在这种情况下如果想多账号撸空投,多开测试账号等,不需要记住额外的助记词,专门弄一个薅羊毛助记词,就可以适用所有场景。
理论小知识:什么硬件钱包
硬件钱包一般是将私钥存储在安全的硬件设备中,与网络计算机等环境隔离起来,使用过程中就是硬件钱包用私钥负责消息发送的签名,私钥不外漏,直接将签名好的消息发送到计算机然后上链。硬件钱包一般都有专用的芯片级加密私钥,在私钥保管上是绝对安全,但是区块链安全问题不仅仅是私钥管理,所以也不能保证绝对安全。
硬件钱包推荐
Ledger x:如果想玩的链多的话,并且链上交互很多,推荐Ledger x,单个硬件钱包能装很多个应用,可以同时支持很多条链,基本上有一个Ledger x不用担心玩链的钱包问题了。也有手机和桌面客户端,也支持各种浏览器钱包。
Ledger s: 支持同时安全2-3个应用,价格便宜,适合玩的链少,链上交互也比较方便。
oneKey : 国内购买方便,支持evm,有自己的应用和钱包,对链上交互友好,非evm公链支持较少。链玩的少可以考虑这款。
imkey: imtoken的硬件钱包,国内购买也方便,适合当冷钱包。
总结:硬件钱包有很多款,适合自己的才是最好的。但是购买硬件钱包一定要注意风险,只能去官网购买,严禁去淘宝等过一手平台购买。像Ledger这种无国内官方渠道的,需要走海淘自己转运。硬件钱包到手后需要确保无拆封,一般都有防拆封的包装,到自己手上一定要是原装。
理论小知识:什么是冷钱包,热钱包
通俗来讲,热钱包就是将私钥存储在手机电脑等设备中,很方便就能进行交互,冷钱包就是私钥离线储存,无论你是写在纸上,使用硬件钱包都算。但是我个人觉得,这样划分不一定有效。如果要保证绝对安全,最有效的冷热钱包之分应该是这样的
冷钱包: 私钥,助记词不联网, 没有公链上面的任何授权,不进行任何合约交互等,仅作为当前公链币的存储,和必要时的转账 。
如何尽可能保证币的安全方法:
钱包分级: 将自己手上的钱包进行分级,每一级别只能干这个级别的事情,并且严格执行。举例说明,我一般分为这几种,冷钱包,主要热钱包,小钱包,测试钱包。
冷钱包 上面已经说明了,基本上就是存币用的,而且只存原生币,一般我会选择硬件钱包作为冷钱包,然后币存进去之后直接锁在保险柜,正常情况也不会怎么使用,基本上放里面拿个几年轻轻松松。
大 热钱包 ,这个可能就是与链上大额交互比较多,或者存一些常用的高价值的币,这个时候我一般也是使用硬件钱包,而且只做安全靠谱的交互,一般来说就是一些大dapp项目,然后在使用完之后,也会取消所有合约授权。
小钱包 ,这个一般就放价值不多的币,直接使用私钥钱包,方便交互,在一些新项目试试水,临时的小金额交易,做做各种测试交互之类的。
测试钱包 ,这个我一般就用助记词生成一堆钱包,成百上千个随便用用,看到好的测试网撸空投之类的,也会批量去操作一波,保管好助记词即可。
钱包软件: 尽可能选择知名度高,用户多的钱包。大资金量的钱包不要轻易尝试新钱包软件等。
助记词保管:
硬件钱包的助记词尽量记在纸上(或者有专用的助记词保管钢板),建议将同一个助记词保管两份,分在两个不同的地方保管。最重要的钱包可以少记录1-2个单词,然后用脑子记住剩下的,或者打乱1-2个顺序,脑子记住正确顺序,或者用自己的算法转化,反正只要自己脑子能记住一部分,就更加的安全了。(如果容易忘事建议不要这么操作)
因为做了钱包分级,所以可以根据自己的钱包来用不同的方式管理助记词,钱包安全级别越高,助记词越需要安全的保管。像测试钱包助记词,一般来说保存在电脑上都行。
注意:
1.除了刚生成钱包或者导入钱包的时候,任何地方都不要输入自己的助记词,凡是要求输入助记词的网站一律诈骗。
2.导入钱包输入助记词不能用复制粘贴等,必须手打。现在各种app都能读取剪贴版,在复制的过程中基本已经泄漏。私钥同理。
3.纸质助记词别忘了放哪了。放的地方也要保证安全。
链上安全:
链上没有绝对的安全,只要操作就可能有风险。但是我们可以尽可能的降低风险。在做好钱包分级之后,如果被盗,损失已经可以降到最低。
交易所安全:
交易所不要放大量资金,做一下资金配置,一般熊市少操作,所以也不需要那么多钱放交易所。尽量认准大所,二线交易所资金也尽可能的少放。一定要配置google两步验证,如果可以的话,两个手机,一个手机交易所,一个手机负责谷歌验证码。我一般的想法是,如果这个交易所跑路了,会不会有极大的损失,损失多少你能够接受。这样放多少资金在交易所自己就能评估了。
总结: 世上没有绝对的安全,但是可以尽可能的降低风险,不被黑被盗留有本金才有更多的可能性。留得青山在,不怕没柴烧。
⑶ 安装 TensorFlow for Java
本文出自 掘金翻译计划。如果您有兴趣,欢迎 申请成为译者,学习完译者教程后,参与到文章和文档的翻译及审核当中。我们也正在招募 TensorFlow 译者,欢迎积极参加。
TensorFlow 为 Java 程序提供了 API。这些 API 旨在加载和执行在 Python 中创建的模型。此教程将解释如何安装并在应用中使用 TensorFlow for Java。
请注意,TensorFlow 的 Java API 不包含在 TensorFlow 主体中。在使用前,请确保检查 API 的稳定性。
以下是 TensorFlow for Java 支持的操作系统:
在 Maven 项目中使用 TensorFlow,仅需在 pom.xml 中添加以下代码。
例如,以下步骤创建了一个使用 TensorFlow 的 Maven 项目:
若命令输出“Hello fromversion”,则表示 TensorFlow for Java 成功安装并可在 Maven 项目中使用。若未成功,可前往 Stack Overflow 查找解决方案。
对于 JDK 下的使用,可直接使用 JDK 中的 java 和 javac 命令,具体方法请参见文档。
在 Linux 或 Mac OS 上安装 TensorFlow for Java 的步骤如下:
在 Windows 上安装 TensorFlow for Java 的步骤如下:
验证安装,可输入以下代码并使用相应命令在 HelloTF.java 文件中验证:
编译时,需确保下载的 .jar 文件位于 classpath 中。例如,使用类似以下指令编译时包含下载的 .jar 文件。
运行依赖 TensorFlow 的 Java 程序时,确保以下两个文件对 JVM 可用。
以下命令在 Linux 和 Mac OS X 上运行HelloTF 程序:
在 Windows 上运行HelloTF 程序的命令如下:
如程序输出“Hello fromversion”,则表示 TensorFlow for Java 已成功安装并可使用 API。如输出其他内容,可查阅 Stack Overflow 寻找解决方案。
若需查看更复杂的示例,请参考 LabelImage.java,用于识别图像中的物体。
TensorFlow 是开源的。可从这个单独的文档中学习如何根据源代码构建 TensorFlow for Java。
掘金翻译计划是一个翻译优质互联网技术文章的社区,内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域。若要查看更多优质译文,请关注 掘金翻译计划、官方微博、知乎专栏。