A. 1. 树莓派:eth桥接到wlan口,共享上网
背景: 树莓派外接5G无线网卡,推流器连接raspberry 3B lan口,共享上网。
验证大宏: raspberry 3B连接手机的热点,PC通过网线与raspberry的lan口相连,实现上网。
思路:
1. 首先给raspberry的eth设置一个静态ip地址。
2. 修改IP转发规则,允许ip数据的转发。(ip_forward的设置)
3. 路由设置,配置iptables,进行两个网卡的桥接。
4. 开启raspberry的DHCP服务,在eth口上开启。
5. 开启DNS服务。
详细过程:
1. 给树莓派的eth分配静态地址。
暂时分配:
sudo ifconfig eth0 192.168.173.1 255.255.255.0 up
永久分配:
写在配置文件里。
配置文件 /etc/network/interfaces,请注意此处wlan0的地址参数要和etc/udhcpd.conf相关参数相对应。
sudo vi /etc/network/interfaces
#iface default inet dhcp
增加
auto eth0
iface eth0 inet static
address 192.168.173.1
netmask 255.255.255.0
注意:
2. 启动IP转发
有多滚滚册种方法,建议使用sysctl的设置方式
方法1:sudo echo 1 > /proc/sys/net/ipv4/ip_forward
方法2:sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
方法3:sudo sysctl -w net.ipv4.ip_forward=1
有的时候需要在/etc/sysctl.conf下添加一行:net.ipv4.ip_forward=1
3. iptables设置
iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE
4. dhcp服务
4.1 安装udhcpd服务
sudo apt-get update
sudo apt-get install udhcpd
4.2 配置DHCP服务
sudo vi /etc/udhcpd.conf
1. 修改网络接口,设置成对应的网卡号
2. 设置remaining,去除前面的#符号
#remaining yes 改为 remain yes
3. 设置树莓派的IP地址
修改opt router为192.168.173.1,那么配置完成之后这个地址将作为网关,连接到raspberry eth口的设备网关需要设置为此IP.
此处opt dns被修改为公共的DNS地址 114.114.114.114和 114.114.114.115
4.3 使能DHCP
配置 /etc/default/udhcpd
sudo nano /etc/default/udhcpd
使用#符号注释DHCPD_ENABLED="no"
备乎DHCPD_ENABLED="no" 改为 #DHCPD_ENABLED="no"
4.4 启动服务
1. 启动udhcp的服务:sudo service udhcpd start
2. 设置开机启动: sudo update-rc.d udhcpd enable
5. dns服务
在进行调试的时候发现无法查询到raspberry使用的dns地址,按照常规方法查到的dns地址为127.0.1.1。在网上查了一下https://segmentfault.com/q/1010000002443769 感兴趣的可以参考一下这篇文章。
这就导致我在测试的时候遇到一个问题,pc可以通过ip地址访问,但是通过域名无法访问。然后我就在网上查了一些共用的dns服务器,设置后一切正常。关于这些共用的dns信息参考如下:
/********************************************************************************************************************************************************/
A、DNSPod DNS+:DNSPod的 Public DNS+是目前国内第一家支持ECS的公共DNS,是DNSPod推出的公共域名解析服务,可以为全网用户提供域名的公共递归解析服务!
DNS 服务器 IP 地址:
首选:119.29.29.29 备选:182.254.116.116
B、114DNS:国内用户量巨大的DNS,访问速度快,各省都有节点,同时满足电信、联通、移动各运营商用户,可以有效预防劫持。
DNS 服务器 IP 地址:
首选:114.114.114.114 备选:114.114.114.115
C、阿里 AliDNS:阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。
DNS 服务器 IP 地址:
首选:223.5.5.5 备选:223.6.6.6
/********************************************************************************************************************************************************/
B. 以太坊多节点私有链部署
假设两台电脑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://@[::]:30303 "
然后在节点二的 JavaScript console 中执行 admin.addPeer(),就可以连接到节点一:
addPeer() 的参数就是节点一的 enode 信息,注意要把 enode 中的 [::] 替换成节点一的 IP 地址。连接成功后,节点一就会开始同步节点二的区块,同步完成后,任意一个节点开始挖矿,另一个节点会自动同步区块,向任意一个节点发送交易,另一个节点也会收到该笔交易。
通过 admin.peers 可以查看连接到的其他节点信息,通过 net.peerCount 可以查看已连接到的节点数量。
除了上面的方法,也可以在启动节点的时候指定 --bootnodes 选项连接到其他节点。 bootnode 是一个轻量级的引导节点,方便联盟链的搭建 下一节讲 通过 bootnode 自动找到节点
参考: https://cloud.tencent.com/developer/article/1332424
C. geth以太坊客户端轻节点模式启动怎么与全节点启动的geth连接
一般来说,Undefined index就清孝是自己编写过程中出现了的的确确的写法问题notice一般提示关于与执行代码局蠢没有直接关系的错误,但不要忘记答腊稿,notice有时会返回一些多余的错误信息
D. 以太坊智能链怎样添加
1.
首先,需要准散友伍备一台服务器,用于运行以太坊智能链。
2.
然后,需要安装告姿以冲或太坊智能链的软件,并配置相关参数。
3.
接着,需要创建一个以太坊智能链的节点,并将其连接到网络中。
4.
最后,需要将以太坊智能链的节点加入到网络中,以便可以与其他节点进行交互。
E. 节点服务器的建立
如果在一个域内只建立一台服务器,则这台服务器就默认的成为主服务器(Administrator Server),每次在主服务器上更改设置后,必须重新启动服务器,这就不得不暂时停止对外提供服务,这种情况在企业环境中常常是不允许的。要解决这个问题,可以在此域中再增加一台或者多台服务器,这些新增加的有别于主服务器的服务器叫做受控服务器(Managed Servers) ,可以将所有商业服务分散于这些受控服务器上面,而用主服务器来管理它们。这样主服务器可以更改设置,重新启动,而各个受控服务器可以继续对外提供服务。
多服务器域中,必须唯一指定其中一台服务器为主服务器,其他服务器作为受控服务器,每一个受控服务器在这个域中是作为一个节点(Node)存在的,或叫节点服务器。在WLS6.1的主服务器控制台上提供了管理这些节点的工具,可以方便的启动停止其域内包含的受控服务器。如果要建立多服务器域,则必须使主服务器上的WLS与各个受控服务器上的WLS版本保持一致。先启动主服务器,然后再启动各个受控服务器。主服务器与受控服务器的每一次通信都是通过SSL来进行的。以上就是要点,下面详细说明一下:
关于数字证书:
各个节点与主服务器之间要使用SSL协议来进行通信,这是为了保证通信安全。此协议使用一配对密锁,公锁和私锁。这是一对非对称密锁,用其中任何一个密锁加密信息只能用另一个来解密。值得一提的是,WLS要求节点与主服务器之间采用双向验证。关于SSL协议的详细内容会在以后“安全管理”部分介绍。
在节点管理过程中所使用的数字证书是符合X.509格式的,私锁遵循PKCS#5和PKCS#8标准。PKCS#5是基于密码口令的,它描述了用密码口令来加密私锁的方法。PKCS#8是私锁的语法标准,说明了私锁应该具有的特征。用于节点管理中的证书与WLS的数字证书格式是不同的,前者只使用一个.crt文件,其中包含了被加过密的私锁(但并不发送密锁),而后者使用的是分开的文件。要使用节点管理,首先必须获得一个.crt证书来使用SSL通讯。您可以去CA机构购买一个私锁和数字证书或者使用WLS提供的私锁和数字证书,不管通过哪种办法,如果得到的私锁不是PKCS#5/#8格式的,要使用WLS提供的wlkeytool工具来转换一下。然后再将私锁、公锁和CA的认证授权文件用cat工具合并成一个crt文件。这里举个例子,看看如何使用WLS自带的私锁、公锁和CA认证授权文件来生成一个crt文件。您可以在mydomain这个默认域所对应的文件夹中找到:demokey.pem、democert.pem和ca.pem,他们分别是私锁、公锁和CA授权文件。这个私锁demokey.pem不是基于PKCS#5/#8格式的,因此我们先用wlkeytool转换一下:
wlkeytool demokey.pem demokey_new
先是提示您输入demokey.pem的解锁密码,如果没有那么直接按回车。然后提示输入新密码,填入密码后,将生成一个PKCS#5/#8格式的新私锁。下面合并这三个文件,生成crt文件:
cat demokey_new democert.pem ca.pem > demo.crt
在mydomain目录下原来就有已经生成好的demo.crt文件,您可以直接拿来使用,或者为了熟悉一下生成crt文件的过程,不妨按上述方法操作一遍,以后就可以生成自己的crt文件。
有了证书我们就可以开始配置各个节点服务器了。
配置节点:
登陆到主服务器的控制台,选择左侧树状菜单中的“Machines”,在右侧框架中点击“Configure a new Machine…”连接。填入要被管理的节点服务器机器名后点击“create”。然后点击“Node Magager”标签页,在这里设置一些参数,这些参数意义可以在后面“启动节点服务器”中找到说明。“Listen Address”填写节点服务器IP或者DNS名。“Listen Port”默认是“5555”,请与此节点服务器启动时使用的端口一致。“Certificate”默认使用“config/demo.crt”,可以改成你自己生成的crt文件。“Certificate Passwrod”没有显示,如果更改了数字证书,则也应该同时修改此密码。“Trusted Certs File”默认是“config/trusted.crt”。
全部填写完后,点击“Appley”按钮。
点击左侧树状菜单中的“Servers”,在右侧框架中点击“Configure a new Server…”连接,在“Configuration->General”标签页的“Name”中添上节点服务器的名称,在“Machine”下拉菜单中选择刚刚建立的机器名,然后点击“Create”按钮。
点击“Configuration->Remote Start”标签页,当主服务器远程启动此节点服务器时,会调用这里设置的参数。如果不提供这些参数,那么主服务器会使用节点服务器启动监听时设置的变量值。由于在下面将要介绍的“远程启动节点服务器”中会提到启动监听时的变量设置,这里就不讲如何填写这些参数了,因为不填也可以。
编辑config/nodemanager.hosts这个文件,删除里面的默认值,然后添加主服务器的地址。
本地启动节点服务器:
可以使用节点服务器上的“WLS目录config与主服务器相同的域名startManagedWebLogic.cmd”这个脚本文件来在本地启动节点服务器。启动之前需要在此节点机器的系统环境变量中(在“我的电脑”上按右键->属性->高级->环境变量->系统变量->添加…)添加两个环境变量(其值的格式可参考startManagedWebLogic.cmd文件的第68行):
ADMIN_URL=主服务器地址和端口
SERVER_NAME=此节点服务器名
再次提醒一下,要启动的节点服务器必须与主服务器在同一个域中(域名相同,比如都是mydomain),而且WLS版本也要相同。添加后,先保证主服务器正在运行,然后执行此脚本来启动节点服务器。在命令行窗口中您会发现,此节点服务器首先连接到主服务器上面来获得配置信息,然后用此配置来启动服务器。
要关闭此节点服务器可以使用命令行:
java weblgoic.Admin ?url host:port SHUTDOWN ?username:adminname ?password password
也可以在主服务器控制台上关闭此节点服务器,只要在左侧菜单中右键选择此节点服务器图标,选择“Stop this server…”即可。“Kill this server…”在这里不能用,必须打开节点服务器监听才可以使用此命令,如何进行监听,请看下面介绍。
远程启动节点服务器:
这与启动主服务器一样,只是启动命令和参数不同。如果一台节点服务器启动了监听,那么主服务器就可以远程启动这台节点服务器。
-Dweblogic.nodemanager.listenAddress=host 受控服务器IP或者DNS名
-Dweblogic.nodemanager.listenPort=post 监听端口,默认5555
-Dweblogic.nodemanager.savedLogsDirectory=path 日志目录,默认NodeManagerLogs目录。
-Dweblogic,nodemanager.certificateFile=path 数字证书的路径和文件名
-Dweblogic.nodemanager.certificateType=type 数字证书类型默认RSA,还可以是DSA。
-Dweblogic.nodemanager.certificatePassword=pkpassword 私锁密码
-Dweblogic.nodemanager.trustedCerts=path 被认可的权威授权列表,默认为config/trusted.crt。
-Dweblogic.nodemanager.reverseDnsEnabled=true 如果使用DNS名来指定受控服务器地址,则要设定此项为true。默认为false。
-Dweblogic.nodemanager.trustedHosts=path 指定存放可以被信任的主机列表文件路径。默认为config/nodemanager.hosts文件,其中默认设定的是本机地址,请修改成主服务器地址。只有列表中存在的服务器地址才能与本节点服务器通信。一般来说文件只包含主服务器的地址这么一行就够了。
-Dbea.home=dir BEA Home路径
-Djava.security.plicy==policy_file 默认是“WLS目录/lib/weblogic.policy”
-Dweblogic.nodemanager.=true 默认情况下,节点服务器并不进行主机名验证,如果要使用验证,设此项为true。
如果想使用脚本来启动监听,请用文本编辑器编辑节点服务器上config目录下面的startNodeManager.cmd文件,添加一个启动参数:
-Dweblogic.nodemanager.listenAddress=此节点服务器的IP或者DNS名
做完以上修改后就可以运行此脚本来启动此节点服务器监听了,启动后命令行窗口会显示正在此节点服务器地址上用端口(5555)进行监听的信息。
您可以将节点服务器作为一项windows服务,这样每次启动计算机都可以自动启动节点服务器。作为节点服务器来说,推荐您将其注册成windows服务。您可以复制installNtService.cmd和uninstallNtService.cmd文件,并改名成installNMNtService.cmd和uninstallNMNtService.cmd。然后参考上面介绍的命令和startManagedWebLogic.cmd中的内容修改这两个文件中的内容:将“weblogic.Server”改成“weblogic.nodemanager.NodeManager”以便启动节点服务器。更改-svcname参数并使installNMNtService.cmd和uninstallNMNtService.cmd中的此参数值保持一致。其他参数请自行修改。
若要远程启动关闭节点服务器,登陆到主服务器的控制台,展开左侧树状菜单中的“Servers”,然后在想要启动的节点服务器图标上点击右键,选择“Start this Server…”,这会启动选中的远程节点服务器。选择“Stop this Server…”会关闭选中的远程节点服务器。选择“Kill this Server…”会杀掉没有响应的远程节点服务器。选择“Get StdOut for this server…”和“Get StdErr for this server…”可以查看此服务器的系统消息。
F. Docker 搭建以太坊私有链
首先需要安装 Docker,Docker 的安装和使用可以参看阮一峰老师的 《Docker 入门教程》 。
Ethereum 官方是支持 docker 的,可以参看 官方蠢备改文档 。
centOS
其中 -v /home/linshan/works/block-chain/ethereum:/root 是把我们当前的 ethereum 目录,挂到了docker 的 /root 下。
在 Windows 环境下使用 -v /home/linshan/works/block-chain/ethereum:/root 不能启动容器,原因不明,所以在 Windows 下先不要使用目录挂载。
各字段具体用途参看 官方文档 。
Windows
Windows 不必创建 start-ethereum.sh 文件, genesis.json 也可以在 Docker 容器启带判动后创建。
centOS
Windows
运滚神行成功后执行
进入 docker 容器命令行
因为 Windows 没有挂载共享目录,所以 root 目录下没有 genesis.json 文件,我们要在这里手动创建 genesis.json 文件,内容要和 centOS 的一致。
data 用来存放区块数据
geth 的参数参看 以太坊客户端Geth命令用法-参数详解
启动私有节点后进入 geth 命令行执行:
输出的内容就是节点信息,我们在手动连接节点是会用到,注意要把“0.0.0.0“换成你自己的IP,然后将这个信息发送给其他节点。手动连接节点有两种方式:
当然不管使用哪种方法连接节点都要保证创世区块文件 genesis.json 一致,还有在启动时 networkid 也要一致。
至此以太坊私有链已搭建完毕。
geth命令
docker命令
G. opwert如何自动连接节点
openwrt路由器使用教程
1、首先登陆路由器,登陆路由器地址路由器后面会写的,默认一般都是192.168.0.1或者192.168.1.1等等。
2、进入路由器设置界面。
3、选择网络菜单,点击接口。
4、选择WAN,点击修改。
5、协议选择,PPPOE,PAP/CHAP用户名与密码就是宽带账号与搜册密码,设置好了后点击保存,在点击保存应用,此时就可以上网了。
6、在进行无线网络设置,点击网络菜单,点击无线,在点击修改。
7、基本设置,设置wifi名称。
8、无线安全,设置wifi密码,之后点击保存,在次点击保存应用即可。路由器设置完成。
openwrt固件使用教程
1、在pppoeserver开启后,下级电脑可以用adsl拨号方式来连接,如果wan的dchp开启,下级还能自动获得ip。只让下级拨号的话,把lan的dchp关掉就行了。
2、这里非并发拨号的典型设置,使用非并拨拨号时,各wan口和单wan一样,会断线自动重拨,拨号由系统来控制。一个断开或者重拨不会影响其它。先配置好pppoe服务器,再创建虚拟网口,开启ping检查,一般是必须的,不管是世仿宏并发拨号还是非并发拨号。强制所有wan口拨号,这个一般也得开,开了,才会掉线重拨。
3、手动重拨,只有在并发拨号才显示,也只在并发时才有用,重拨次数,成功连接数,叠加检测都只对并发有用。重拨次数一般设置5次,wan端口数量得对应你创建的总数,大盯成功连接数,小于或者等于wan端口数量,是指拨上的wan数,等待时间是并发拨号尝试没有拨上成功连接的数量时,再等待设置的时间(秒)后,再尝试下一次拨号。
4、自动更新路由表不细说,可以打开,叠加检测,当使用并发拨号时,机器在启动时,在线检测也会启动。当在线检测不在线时,会触发一个拨号命令,如果不开这个检测,会出现多次拨号现象。如果打开,拨号后会检测叠加是否成功。如果不成功,会再拨,成功了才退出。所以,叠加检测还会阻断路由开机时的在线检测所触发的拨号命令。不会出现不停的多次拨号,所以在并发时最好打开。
5、是检测次数,一般为6次,检测周期一般30s,可以自己根据多拨修改,如果叠加快可以减少,如果叠加慢,出现多次拨号就加大检测周期。检测原理是这样的,先等待40秒,检测一次叠加,如果没全部叠加,就等待检测周期所设置的时间后,再检测一次。如此循环,直到检测次数完成后,如果还没叠加。
6、会触发下一次拨号,此并发拨号,不如pppoe并发拨号好用,叠加失败率高。叠加成功后,会在上面路由表出现nexthop,行数和wan数量一样多。出现这个才是叠加成功。
H. 以太坊无法连接节点
把你的TCP/IP协议设置成自动获取游握耐状态试试,方法:右键网上邻居-属性- 右键"本地连接"属性-双击"Internet 协议 TCP/IP"-改为自动获取
IPX/SPX协议,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成皮灶功,也不提供纠错服务。IPX在负责数神春据传送时,如果接收节点在同一网段内,就直接按该节点的ID将数据传给它;如果接收节点是远程的(不在同一网段内,或位于不同的局域网中),数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差错处理,所以我们将IPX/SPX也叫做“Novell的协议集”。
I. 走进以太坊网络
目录
术语“以太坊节点”是指以某种方式与以太坊网络交互的程序。从简单的手机钱包应用程序到存储整个区块链副本的计算机,任何设备均可扮演以太坊节点。
所有节点都以某种方式充当通信点,但以太坊网络中的节点分为多种类型。
与比特币不同,以太坊找不到任何程序作为参考实施方案。在比特币生态系统中, 比特币核心 是主要节点软件,以太坊黄皮书则提出了一系列独立(但兼容)的程序。目前最流行的是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。