目录
目前创新互联公司已为1000多家的企业提供了网站建设、域名、网络空间、绵阳服务器托管、企业网站设计、虞城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
术语“以太坊节点”是指以某种方式与以太坊网络交互的程序。从简单的手机钱包应用程序到存储整个区块链副本的计算机,任何设备均可扮演以太坊节点。
所有节点都以某种方式充当通信点,但以太坊网络中的节点分为多种类型。
与比特币不同,以太坊找不到任何程序作为参考实施方案。在比特币生态系统中, 比特币核心 是主要节点软件,以太坊黄皮书则提出了一系列独立(但兼容)的程序。目前最流行的是Geth和Parity。
若要以允许独立验证区块链数据的方式连接以太坊网络,则应使用之前提到的软件运行全节点。
该软件将从其他节点下载区块,并验证其所含交易的正确性。软件还将运行调用的所有智能合约,确保接收的信息与其他节点相同。如果一切按计划运行,我们可以认为所有节点设备均存储相同的区块链副本。
全节点对于以太坊的运行至关重要。如果没有遍布全球的众多节点,网络将丧失其抗审查性与去中心化特性。
通过运行全节点,您可以直接为网络的 健康 和安全发展贡献一份力量。然而,全节点通常需要使用独立的机器完成运行和维护。对于无法(或单纯不愿)运行全节点的用户,轻节点是更好的选择。
顾名思义,轻节点均为轻量级设备,可显著降低资源和空间占用率。手机或笔记本电脑等便携式设备均可作为轻节点。然而,降低开销也要付出代价:轻节点无法完全实现自给自足。它们无法与整条区块链同步,需要全节点提供相关信息。
轻节点备受商户、服务供应商和用户的青睐。在不必使用全节点并且运行成本过高的情况下,它们广泛应用于支收付款。
挖矿节点既可以是全节点客户端,也可以是轻节点客户端。“挖矿节点”这个术语的使用方式与比特币生态系统不同,但依然应用于识别参与者。
如需参与以太坊挖矿,必须使用一些附加硬件。最常见的做法是构建 矿机 。用户通过矿机将多个GPU(图形处理器)连接起来,高速计算哈希数据。
矿工可以选择两种挖矿方案:单独挖矿或加入矿池。 单独挖矿 表示矿工独自创建区块。如果成功,则独享挖矿奖励。如果加入 矿池 ,众多矿工的哈希算力会结合起来。出块速度得以提升,但挖矿奖励将由众多矿工共享。
区块链最重要的特性之一就是“开放访问”。这表明任何人均可运行以太坊节点,并通过验证交易和区块强化网络。
与比特币相似,许多企业都提供即插即用的以太坊节点。如果只想启动并运行单一节点,这种设备无疑是最佳选择,缺点是必须为便捷性额外付费。
如前文所述,以太坊中存在众多不同类型的节点软件实施方案,例如Geth和Parity。若要运行个人节点,必须掌握所选实施方案的安装流程。
除非运行名为 归档节点 的特殊节点,否则消费级笔记本电脑足以支持以太坊全节点正常运行。不过,最好不要使用日常工作设备,因为节点会严重拖慢运行速度。
运行个人节点时,建议设备始终在线。倘若节点离线,再次联网时可能耗费大量的时间进行同步。因此,最好选择造价低廉并且易于维护的设备。您甚至可以通过Raspberry Pi运行轻节点。
随着网络即将过渡到权益证明机制,以太坊挖矿不再是最安全的长期投资方式。过渡成功后,以太坊矿工只能将挖矿设备转入其他网络或直接变卖。
鉴于过渡尚未完成,参与以太坊挖矿仍需使用特殊硬件(例如GPU或ASIC)。若要获得可观收益,则必须定制矿机并寻找电价低廉的矿场。此外,还需创建以太坊钱包并配置相应的挖矿软件。这一切都会耗费大量的时间和资金。在参与挖矿前,请认真考量自己能否应对各种挑战。(国内严禁挖矿,切勿以身试法)
ProgPow代表 程序化工作量证明 。这是以太坊挖矿算法Ethash的扩展方案,旨在提升GPU的竞争力,使其超过ASIC。
在比特币和以太坊社区,抗ASIC多年来一直是饱受争议的话题。在比特币网络中,ASIC已经成为主要的挖矿力量。
在以太坊中,ASIC并不是主流,相当一部分矿工仍然使用GPU。然而,随着越来越多的公司将以太坊ASIC矿机引入市场,这种情况很快就会改变。然而,ASIC到底存在什么问题呢?
一方面,ASIC明显削弱网络的去中心化。如果GPU矿工无法盈利,不得不停止挖矿,哈希率最终就会集中在少数矿工手中。此外,ASIC芯片的开发成本相当昂贵,坐拥开发能力与资源的公司屈指可数。这种现状有可能导致以太坊挖矿产业集中在少数公司手中,形成一定程度的行业垄断。
自2018年以来,ProgPow的集成一直饱受争议。有些人认为,它有益于以太坊生态系统的 健康 发展。另一些人则持反对态度,认为它可能导致硬分叉。随着权益证明机制的到来,ProgPoW能否应用于网络仍然有待观察。
以太坊与比特币是一样,均为开源平台。所有人都可以参与协议开发,或基于协议构建应用程序。事实上,以太坊也是区块链领域目前最大的开发者社区。
Andreas Antonopoulos和Gavin Wood出品的 Mastering Ethereum ,以及Ethereum.org推出的 开发者资源 等都是新晋开发者理想的入门之选。
智能合约的概念于20世纪90年代首次提出。其在区块链中的应用带来了一系列全新挑战。2014年由Gavin Wood提出的Solidity已经成为开发以太坊智能合约的主要编程语言,其语法与Java、JavaScript以及C++类似。
从本质上讲,使用Solidity语言,开发者可以编写在分解后可由以太坊虚拟机(EVM)解析的指令。您可以通过Solidity GitHub详细了解其工作原理。
其实,Solidity语言并非以太坊开发者的唯一选择。Vyper也是一种热门的开发语言,其语法更接近Python。
近日,白帽子黑客Marco Ramilli捕获到了一封“奇特”的恶意电子邮件,其中包含一条链接,一旦点击就会导致一个名为“pik.zip”的压缩文件被下载。之所以说它奇特,是因为包含在这个ZIP文件中的JavaScript脚本文件采用了西里尔字母进行命名——被命名为“Группа Компаний ПИК подробности заказа”,翻译过来就是“PIK集团公司订单详情”。
需要说明的是,目前使用西里尔字母的文字包括俄语、乌克兰语、卢森尼亚语、白俄罗斯语、保加利亚语、塞尔维亚语和马其顿语等,而PIK恰好就是俄罗斯的一家房地产公司,拥有超过1.4万名员工。也就是说,攻击者显然试图将电子邮件伪装成来自PIK公司,从而借助该公司的声誉开展攻击活动。
Marco Ramilli表示,攻击者使用了多种混淆技术来对该脚本JavaScript进行混淆处理。其中,在感染第一阶段阶段存在两个主要的混淆流:
该脚本最终会释放并执行一个虚假的图像文件“msg.jpg”,该文件实际上是一个经过UPX加壳的Windows PE文件,被用于感染的第二阶段。
在感染的第二阶段,三个额外的模块会被释放并执行:一个后门木马、一个挖矿脚本和一种此前曾被广泛报道过的勒索病毒——Troldesh。
分析表明,第一个被释放的模块(327B0EF4.exe)与Troldesh非常相似。该勒索病毒会在加密目标文件之后对其进行重命名并附加一个“.crypted00000”扩展名。举例来说,当一个名为“1.jp”的文件在被加密之后,其文件名就会被重命名为“hmv8IGQE5oYCLEd2IS3wZQ==.135DB21A6CE65DAEFE26.crypted000007”。同时,Troldesh还会篡改计算机桌面的壁纸,以显示勒索信息:
第二个被释放的模块(37ED0C97.exe)是被证实一个名为“nheqminer”的挖矿脚本,被用于挖掘大零币(Zcash,一种加密货币)。
第三个安装被释放的模块(B56CE7B7.exe)则被证实是Heur木马,该木马的主要功能是针对WordPress网站实施暴力破解,曾在2017年被广泛报道。
根据Marco Ramilli的说法,该木马的典型行为与HEUR.Trojan.Win32.Generic非常相似,包括:
一旦该木马安装成功,就会通过暴力破解来寻求弱口令凭证,而一旦发现了弱口令凭证,就将pik.zip复制到这些WordPress网站中。
Marco Ramilli认为,此次攻击活动背后的攻击者显然试图通过多种渠道来牟利——勒索病毒和加密货币挖矿脚本。此外,攻击者还试图通过受感染计算机来暴力破解并控制随机的WordPress网站。这样的攻击活动工作量显然非常大,且很容易被检测到。因此,攻击者不太可能是某个国家黑客组织,而只是一群想要同时通过多种方式来牟利的网络犯罪分子。
因为用别人的手机会更加安全一点,这样公安局或者安全局就不容易找到黑客的地址了。
“偷矿”是指未经你同意的情况下,黑客利用你的系统资源挖掘虚拟货币。这主要借助于网站的 JavaScript 代码,黑客在代码中注入“偷矿”程序,当你访问这些代码时,“偷矿”程序便会偷偷自动运行。
虽然黑客能够主动入侵网站来运行挖矿脚本,但需要注意的是,那些使用了类似 Coinhive.com 这种插件服务的网站无意中也会给黑客提供更多的可乘之机。
简而言之,你访问的网站都有可能利用你的设备来“偷矿”。
如果你发现自己的智能手机或者笔记本电脑突然发烫或者 CPU 使用率极高,但是你并未运行太多的应用程序,那么你的设备很可能被黑客“劫持”了,他们正在利用你的设备“偷矿”。
你可以使用设备访问检测网站(例如 Piratebay)来确认其安全性。
不管你的设备是否被黑客利用了,未雨绸缪总是没错的。以下建议可以助你防患于未然:
1. 使用 Opera 浏览器
虽然 Chrome 是最常用的浏览器,但是 Opera 浏览器提供了一些 Chrome 没有的有趣功能。最新版本的 Opera 浏览器能够自动拦截广告,此外,它还内置了阻止挖矿的防护功能。这一功能可以阻止网站擅自运行非法挖矿的脚本,这与网页上的广告拦截技术并没有太大区别。
2.使用清理程序
如果采用了上面的措施之后你仍然放心不下,那么可以在电脑和智能手机上安装 Malwarebytes 清理程序,它的电脑版是完全免费的,但是针对手机的高级版是收费的。随着现在越来越多的区块链项目开始采用手机挖矿,如果你不想让自己的手机有被当作肉鸡的风险,适当花点小钱也是值得的。
你仍然可以继续使用像卡巴斯基这样的防病毒软件来保护自己的智能手机。
监控网络性能,查看未经授权连接的日志,使用浏览器扩展组件,阻止恶意挖矿软件,启用Edge浏览器的Super-Duper安全模式。
随着加密货币市值的一路飙升,恶意挖矿软件正在全球肆虐,比员工上班摸鱼更可怕的是,来自外部或内部的挖矿软件正在悄悄消耗着企业的IT资源,侵蚀企业利润。当不法分子通过 Web 服务器和浏览器劫持系统时,就会发生加密劫持(挖矿)。
恶意 JavaScript 通常被注入或植入 Web 服务器,当用户访问网页时,浏览器就会被感染,将他们的计算机变成矿工。
假设两台电脑A和B
要求:
1、两台电脑要在一个网络中,能ping通
2、两个节点使用相同的创世区块文件
3、禁用ipc;同时使用参数--nodiscover
4、networkid要相同,端口号可以不同
1.4 搭建私有链
1.4.1 创建目录和genesis.json文件
创建私有链根目录./testnet
创建数据存储目录./testnet/data0
创建创世区块配置文件./testnet/genesis.json
1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json
1.4.3 启动私有节点
1.4.4 创建账号
personal.newAccount()
1.4.5 查看账号
eth.accounts
1.4.6 查看账号余额
eth.getBalance(eth.accounts[0])
1.4.7 启动停止挖矿
启动挖矿:
miner.start(1)
其中 start 的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的 DAG 文件,这个过程有点慢,等进度达到 100% 后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。
停止挖矿,在 console 中输入:
miner.stop()
挖到一个区块会奖励5个以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做 coinbase,默认情况下 coinbase 是本地账户中的第一个账户,可以通过 miner.setEtherbase() 将其他账户设置成 coinbase。
1.4.8 转账
目前,账户 0 已经挖到了 3 个块的奖励,账户 1 的余额还是0:
我们要从账户 0 向账户 1 转账,所以要先解锁账户 0,才能发起交易:
发送交易,账户 0 - 账户 1:
需要输入密码 123456
此时如果没有挖矿,用 txpool.status 命令可以看到本地交易池中有一个待确认的交易,可以使用 eth.getBlock("pending", true).transactions 查看当前待确认交易。
使用 miner.start() 命令开始挖矿:
miner.start(1);admin.sleepBlocks(1);miner.stop();
新区块挖出后,挖矿结束,查看账户 1 的余额,已经收到了账户 0 的以太币:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')
用同样的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json
启动私有节点一,修改 rpcport 和port
可以通过 admin.addPeer() 方法连接到其他节点,两个节点要要指定相同的 chainID。
假设有两个节点:节点一和节点二,chainID 都是 1024,通过下面的步骤就可以从节点二连接到节点一。
首先要知道节点一的 enode 信息,在节点一的 JavaScript console 中执行下面的命令查看 enode 信息:
admin.nodeInfo.enode
" enode://d465bcbd5c34da7f4b8e00cbf9dd18e7e2c38fbd6642b7435f340c7d5168947ff2b822146e1dc1b07e02f7c15d5ca09249a92f1d0caa34587c9b2743172259ee@[::]:30303 "
然后在节点二的 JavaScript console 中执行 admin.addPeer(),就可以连接到节点一:
addPeer() 的参数就是节点一的 enode 信息,注意要把 enode 中的 [::] 替换成节点一的 IP 地址。连接成功后,节点一就会开始同步节点二的区块,同步完成后,任意一个节点开始挖矿,另一个节点会自动同步区块,向任意一个节点发送交易,另一个节点也会收到该笔交易。
通过 admin.peers 可以查看连接到的其他节点信息,通过 net.peerCount 可以查看已连接到的节点数量。
除了上面的方法,也可以在启动节点的时候指定 --bootnodes 选项连接到其他节点。 bootnode 是一个轻量级的引导节点,方便联盟链的搭建 下一节讲 通过 bootnode 自动找到节点
参考:
可以用腾讯电脑管家,查杀能力强。应用腾讯自研第二代具有“自学习能力”的反病毒引擎、以及搭载全球最大的风险网址数据库,腾讯自研第二代反病毒引擎命名为“鹰眼”引擎,能够根除顽固病毒、大幅度提升深度查杀能力。