这个你敢进吗?(酆都城)

在牛头山双泉寺除了有好看的花花草草以外,还有这样一处地方,一看名字,就觉得阴森森的呀,话说这个你敢进去吗?进去之后还能出来不?

城门两边一幅对联:

度尽万生方证菩提
地狱不空誓不成佛

这其实是地藏王菩萨说的啦,地藏菩萨又被称为大愿地藏菩萨,据传在过去世中,曾经几次将在地狱受苦的母亲救出;并在久远劫以来就发愿要救度包括地狱众生在内的一切罪苦众生。

据说地藏王早就可以成佛的果位了,但是他发愿:地狱未空,誓不成佛,众生度尽,方证菩提,真是了不起!

扯远了,还是来看图吧


20180617_101015.jpg

20180617_100808.jpg

20180617_101131.jpg

20180617_095329.jpg

20180617_101034.jpg


据说这里边有18层,不过我只在门口看了一眼,进18层地狱参观还是需要勇气的啊。怪吓人的,我还是闪了吧~~,阿弥陀佛。


This page is synchronized from the post: 这个你敢进吗?(酆都城)

EOS的钱包操作

在之前的帖子中,我尝试了编译EOS程序,以及连接到EOS主网,然后我们来继续学习一下钱包操作。


(图源 :pixabay)

说到钱包操作,不得不提一件特别让人郁闷的事情,如果当初EOS主网上线之前,我的以太钱包中有EOS并且做好了映射,那么主网上线后会自动帮我注册一个用户,然后就可以用这个用户愉快的玩耍了。

可惜之前懒惰了一下,没考虑太多,都扔交易所了,然后就是主网上线后我并没有一个可用的EOS账户,这就比较尴尬了。不过我虽然没有EOS账户,但是我有朋友啊,喊朋友帮忙注册了一个账户,再给我放进去几个EOS,账户也有了,EOS也有了,美滋滋。

这节我们来学一下EOS钱包的简单操作。

keosd

在bitshares或者steem中,和命令行程序打过交道的都会接触过cli_wallet,那么这个keosd又是啥玩意,我理解呢其实keosd就是用来管理钱包和私钥的,而cleos+keosd的效果等同于bitsahres或者steem中的cli_wallet.


(图源:https://developers.eos.io/eosio-nodeos/docs/overview-1)

按官网文档的说法,keosd会随cli_wallet自动加载和启动,但是我这边测试直接用的话,却总提示:

“/home/xxxx/eos/build/programs/keosd/keosd” launched
Unable to connect to keosd, if keosd is running please kill the process and try again.

所以先老实的启动keosd吧,keosd的配置文件以及钱包的存储路径为:

~/eosio-wallet/

如果这个路径尚不存在,运行一下keosd再关闭即可。

编辑上述目录下的config.ini

http-server-address = 127.0.0.1:8900

将keosd监听端口改为8900,这样我们在使用cleos命令时候就无需指定钱包url和端口啦。执行如下命令启动keosd

keosd&

创建钱包 & 解锁

我们可以使用如下指令创建钱包:

cleos wallet create -n test

如果不指定钱包名,则创建default钱包。

注意保管好钱包密码,钱包每900秒自动锁定,需要使用这个密码来解锁。

解锁钱包命令如下:

cleos wallet unlock -n test

按提示输入上述保存的密码即可。

创建KeyPair

在进一步了解钱包功能之前,我们需要有一个EOS账户,比如说找朋友注册。但是找朋友注册朋友如何给你设置密码呀?涉及钱财总要谨慎一点,即便双方都不在意,但是万一被黑客盗取了,这事说不清呀!

其实很简单,创建KeyPair,把公钥给朋友用来注册EOS账户,私钥我们自己留着就好,既方便又安全。

创建公私钥对是很简单的,只需执行如下命令即可:

cleos create key

然后就会提示我如下密钥对,公钥可以拿去给朋友啦。

Private key: 5JbJL9YXgX4Sot69FMWHhdqowdpxMgLfju2aVtjW7mRKcmaidSE
Public key: EOS64g4ueRf6EsBL4ZfnPU9HppJMHzZJ2o9Qhzm5AWjrX4byp9ijT

注:上述公私钥仅为演示,千万不要拿去使用

注册账户

如果你有系统分配好的用户,并且已经在钱包中导入了对应私钥,那么你可以用来注册新账户了

cleos system newaccount --stake-net '0.01 EOS' --stake-cpu '0.01 EOS' --buy-ram-kbytes 8 <自动分配的账户名> <新注册账户名> <你的公钥>

这个net、cpu、ram的机制我还有点晕,不过初学者嘛,相信我慢慢就会懂的。

这步其实是朋友帮我操作的,现在我有了一个EOS账户以及对应的公私钥。

钱包导入私钥

那么怎样将我的账户放入到钱包呢,其实只要在钱包中导入私钥即可。

cleos wallet unlock -n test
cleos wallet import -n test 5JbJL9YXgX4Sot69FMWHhdqowdpxMgLfju2aVtjW7mRKcmaidSE

我们可以使用如下命令来查看我们导入的私钥对应的公钥
cleos wallet keys


看起来是没啥错误的。

钱包其它操作

钱包的用法及命令如下所示:

或者查看以下链接:
https://developers.eos.io/eosio-cleos/reference#cleos-wallet


搞定了钱包,我们就可以做好多操作了,比如说注册账户、转账、给BP投票啥的,具体的这里就不多讲了。

相关链接


This page is synchronized from the post: EOS的钱包操作

禅院芬芳

寺院在我心目中大多是庄严肃穆的,再在大殿里供奉个怒目金刚,一进来就肃然起敬。即便有些植物,大多也是松柏之类的。

然而我前些天去了一趟牛头山双泉寺,误入一处僧人们休憩的地方,却发现此间景致甚好,更重要的是还多了许多花花草草,颇具生活气息。

不多说了,直接上图。


20180617_095828.jpg

20180617_095907.jpg

20180617_095922.jpg

20180617_100133.jpg

20180617_100212.jpg

20180617_100202.jpg

20180617_100221.jpg

20180617_100252.jpg

20180617_100259.jpg

20180617_100314.jpg

20180617_100326.jpg

话说有这么好的环境,和尚们一定会好好念经吧,阿弥陀佛~~


This page is synchronized from the post: 禅院芬芳

连接到EOS主网

在之前的文章中,我已经编译出来了EOS程序,但是光编译出程序还是没法愉快地玩耍的,要让我的EOS连接到主网上,才可以进行好多好玩的操作。


(图源 :pixabay)

在进一步操作之前,我把之前编译出来的程序都拷贝到一个新用户的bin目录下,这样我就省却输入大串路径名的麻烦了,并且我可以随便搞,不怕一不小心rm -rf *删除掉我之前辛苦编译出来的东西,毕竟编一次耗时挺长滴。

生成默认config.ini

如何连接上主网呢?我们来运行一下nodeos试试看。

哦,我同台VPS上另外一个节点正在运行,所以出现地址被占用错误,不过这都不重要,重要的是首次运行nodeos它帮我生成了默认的配置文件。

eosio root is /home/eosmain/.local/share

其中eosmain是我创建的测试用户,也就是当前用户,而配置文件就在以下路径下:

~/.local/share/eosio/nodeos/config

配置文件名称为config.ini,详情可以参考EOS开发站上的Configuration说明

我们首先要解决的是端口冲突问题(不像我这么折腾的话不用改的)

http-server-address = 127.0.0.1:5678
p2p-listen-endpoint = 0.0.0.0:5679

  • 启用chain_api_plugin
    重新运行nodeos,在另外的窗口中执行如下命令:

    cleos -u http://127.0.0.1:5678 get info

提示我如下错误信息:

Error 3110001: Missing Chain API Plugin
Ensure that you have eosio::chain_api_plugin added to your node’s configuration!
Error Details:
Chain API plugin is not enabled

缺啥补啥,在config.ini中加上如下语句:

plugin = eosio::chain_api_plugin

指定mainnet-genesis.json

再次执行nodeos, 再次执行cleos -u http://127.0.0.1:5678 get info

我们会得到如下信息,在这里我们需要注意的是:

"chain_id": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",

而主网的Chain ID为: aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906,所以我们运行的姿势是不对的,哪里不对呢?答案是链接主网需要在首次运行时指定:genesis-json,这玩意上哪找呢?

最后我在这里找到一份,拿去不谢:
https://github.com/EOS-Mainnet/eos/blob/mainnet-1.0.5/mainnet-genesis.json
使用如下代码下载上述mainnet-genesis.json

wget https://github.com/EOS-Mainnet/eos/raw/mainnet-1.0.5/mainnet-genesis.json

执行如下命令:

nodeos --genesis-json mainnet-genesis.json

提示如下出错信息:

Genesis state can only be set on a fresh blockchain.

解决的方法很粗暴,删掉原来的区块链数据即可

rm -rf ~/.local/share/eosio/nodeos/data/
(或者在nodeos后边加上--delete-all-blocks参数)

来执行一下新命令:
nodeos --genesis-json mainnet-genesis.json --delete-all-blocks

添加p2p-peer-address

再来看看Chain ID, 已经是主网ID了

然而我的块为啥一直是一个呀,这是单机版主网吗?原来我还没有添加种子节点

https://github.com/EOS-Mainnet/eos 中找到一份种子节点列表:
Peer List Location: https://docs.google.com/spreadsheets/d/1K_un5Vak3eDh_b4Wdh43sOersuhs0A76HMCfeQplDOY/edit#gid=0

Google嘛,不存在的,你懂的,于是爱国上网的我就看到这一堆不明所以东东(什么文字?)

不过表格还是看得懂的,copy出来点贴我config.ini中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
p2p-peer-address = eu-west-nl.eosamsterdam.net:9876
p2p-peer-address = p2p.mainnet.eosgermany.online:9876
p2p-peer-address = 54.38.250.15:19878
p2p-peer-address = p2p.genereos.io:9876
p2p-peer-address = mainnet.eospay.host:19876
p2p-peer-address = 130.211.59.178:9876
p2p-peer-address = 54.153.59.31:9999
p2p-peer-address = 94.130.250.22:9806
p2p-peer-address = peer.main.alohaeos.com:9876
p2p-peer-address = peer.eosn.io:9876
p2p-peer-address = prod.mainnet.eos.cybex.io:9888
p2p-peer-address = p2p-1.eosnetwork.io:9876
p2p-peer-address = p.jeda.one:3322
p2p-peer-address = eosbattles.com:9877
p2p-peer-address = 34.226.76.22:9876
p2p-peer-address = mainnet.eosoasis.io:9876
p2p-peer-address = node.eosflare.io:1883
p2p-peer-address = mainnet.eoscalgary.io:5222
p2p-peer-address = eos-p2p.worbli.io:33981
p2p-peer-address = 18.188.38.175:9876
p2p-peer-address = 18.221.255.38:9876
p2p-peer-address = eos.staked.us:9870
p2p-peer-address = peering.dutcheos.io:9876
p2p-peer-address = 18.188.4.97:9876
p2p-peer-address = 18.191.125.105:9876
p2p-peer-address = boot.eostitan.com:9876
p2p-peer-address = eosboot.chainrift.com:9876
p2p-peer-address = dc1.eosemerge.io:9876
p2p-peer-address = m.eosvibes.io:9876
p2p-peer-address = node1.eosphere.io:9876
p2p-peer-address = node2.eosphere.io:9876
p2p-peer-address = 45.33.60.65:9820
p2p-peer-address = p2p.eosio.cr:1976
p2p-peer-address = p2p.eosio.cr:5418
p2p-peer-address = eno.eosvan.io:19866

我在想是不是选择地理位置临近的p2p-peer-address会更好呢?,懒得弄了。

重新执行nodeos(注意,不需要指定 --genesis-json mainnet-genesis.json --delete-all-blocks 啦)

再次执行:

cleos -u http://127.0.0.1:5678 get info

耶ChainID正确,也开始同步区块啦。

总结

尽管写得很多,但是大部分是为了测试和了解的需要。通过学习,连接到EOS主网无外乎几个操作:

  • 执行nodeos生成默认config.ini
  • 对config.ini进行必要的编辑
    • plugin = eosio::chain_api_plugin
    • 添加p2p-peer-address列表
  • 下载mainnet-genesis.json文件
  • 第一次正式启动时指定--genesis-json mainnet-genesis.json --delete-all-blocks

注:本文仅为本人的学习和探索,仅供参考。
使用文中代码及操作导致任何损失,本人概不负责!

相关连接


This page is synchronized from the post: 连接到EOS主网

《她不爱我》六:委屈 (全文终)

他静静地站在树林边,也许没有答案就是最好的答案。况且当初说过什么做过什么重要吗?时间像流水一般流逝,人和事终归都会和时间的流逝变化的。

他又想起当年他冲冠一怒为红颜单枪匹马挑战整个校园黑帮的往事,想起那个女孩纯净的眼神,然而到底是谁负了谁呢,他搞不懂也不想搞懂。

自己终归也变了啊,他自嘲地感慨。

“轰隆隆”闪电亮起,进而雷声响起,然后瓢泼大雨瞬间来临,他在雨中慢慢地往寝室走去,除了寝室他想不起来能去那,酒吧之类的地方,他还从来没去过。

远处跑来一个身影,高挑的身材,漂亮的面孔,还有招牌式的张扬的冲天辫,手里撑着一个不成比例的大伞,不是学姐还能是谁?

“下这么大雨也不知道躲躲!如果不是XX告诉我,我还不知道你在这里!”
学姐努力撑起大伞将他罩在伞下,一副心疼的样子。

“XX?”
他心里燃起一丝期望,难道XX还关心着我?

“是啊,我打你电话没人接,出来正好看到XX,说你在这边呢。你们怎么没在一起呢?”

他这才发现自己想多了,原来她们是偶遇,期望瞬间变成了巨大的失望。“她不爱我”他喃喃自语,最后竟然孩子一般地哭了起来,仿若受了天大的委屈。

学姐被他吓了一跳,怎么说哭就哭了呢,慌忙手足无措地安慰起他来,拍拍他的肩膀期望他振作起来。可他竟然顺势趴在学姐肩头,搂着学姐痛哭,学姐娇躯一颤,一阵风雨袭来,大雨伞瞬时刮飞了。

学姐的衣服瞬间被大雨淋湿,看着这个大男孩委屈的样子,学姐的双手从无处可放,到轻轻环绕起他,轻轻拍抚他的后背,安慰这个受伤的男孩。

“她不爱我,呜呜呜“他还在哭,泪水和雨水混杂在一起。

“他不爱我”学姐轻声的呢喃,声音低沉到只有自己才听得清楚……

(全文终)


注:本文纯属虚构,讲一个平淡无奇的故事
因为虚构得太简单太傻,应该没有雷同

(图源 :pixabay)

相关链接


This page is synchronized from the post: 《她不爱我》六:委屈 (全文终)

尝试编译EOS

之前一直没怎么去了解过EOS,除了偶尔看看各种新闻稿,总觉的EOS上线是遥不可及的事情,结果一转眼,EOS结束了众筹,主网上线都好多天了,于是想着该去了解一下啦。

系统要求和准备

单单看别人说这玩意如何如何感觉太凌乱,还是自己上手操作一下吧,那么就先从build开始。按照官方文档,写着的系统要求是:

  • 8GB 以上可用内存
  • 20GB以上可用空间

于是我就选个如下配置的VPS吧:

设置好VPS后,更新一下系统,然后在添加一个测试用户,就开工喽。

获取源代码

登陆测试用户,执行如下指令:

git clone https://github.com/EOS-Mainnet/eos.git --recursive
cd eos
git checkout mainnet-1.0.5
git submodule update --init --recursive

(一直搞不懂EOS-Mainnet和EOSIO上的EOS有啥区别,懒得细想啦)

执行自动编译脚本

相比于其它软件,EOS提供了一个自动编译脚本,支持以下几个主流的系统:

  • Amazon 2017.09 and higher
  • Centos 7
  • Fedora 25 and higher (Fedora 27 recommended)
  • Mint 18
  • Ubuntu 16.04 LTS (Ubuntu 16.10 recommended)
  • Ubuntu 18.04 LTS
  • MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)

我们只需运行如下指令即可

./eosio_build.sh

编译过程

自动编译脚本通过运行类似如下语句来判断系统环境:

OS_NAME=$( cat /etc/os-release | grep ^NAME | cut -d'=' -f2 | sed 's/\"//gI' )

然后根据系统环境包含对应环境下的编译脚本,以我的系统Ubuntu 16.04.4 LTS为例,eosio_build.sh会将./scripts/eosio_build_ubuntu.sh包含进来。然后对内存(free)大小、CPU(lscpu)、磁盘空间(df)等进行对应的检查:

对于在下编译EOS,依赖于以下工具包:

DEP_ARRAY=(clang-4.0 lldb-4.0 libclang-4.0-dev cmake make automake libbz2-dev libssl-dev libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev python3-dev autoconf libtool curl zlib1g-dev doxygen graphviz)

脚本会对系统已安装的工具包进行判断(dpkg)

整理出缺少的工具包

提示安装

Do you wish to install these packages?
1) Yes
2) No

习惯性的敲了个Yes,然后却被提示如下信息:

Please type 1 for yes or 2 for no.

好吧,我瓦特了,原来这个是个选择题,不是填空题,输入1,当然要安装这些工具包啦,不然也没法玩,不是嘛。然后提示输入sudo 密码:

Installing dependencies
[sudo] password for xxxx:
xxxx is not in the sudoers file. This incident will be reported.

当初我看到很这个EOSIO github上的wiki页面,我就很好奇,也没说要求用root权限,也看到sudo之类的指令,那么那么gcc啊啥的是怎么装上的去呢?莫非能本地用户安装,执行了一遍./eosio_build.sh脚本,我就知道了,原来在这等着我呢!看来想破脑瓜不如去操作一遍啊。

然而我建的就是个普通用户,没赋给sudo权限,所以这块肯定就卡住了,将这个用户赋予了sudo权限后,重新执行,脚本自动完成了上述工具包的下载和安装。

之后编译和安装boost,这块没啥毛病,只是有一堆很壮观的警告信息(部分截图)

然后编译和安装MongoDB,这块再次需要用到sudo权限。

然后我就不理它了,休息去鸟。忙了一阵,才想起来我还在build EOS呢,回来一看,哇竟然完成了。

测试验证

按上边的提示信息,可以运行下列指令测试我们编译出来的东西是否正常

export PATH=${HOME}/opt/mongodb/bin:$PATH
/home/xxxx/opt/mongodb/bin/mongod -f /home/xxxx/opt/mongodb/mongod.conf &
cd /home/xxxx/eos/build; make test


之前的测试很快


后边的测试耗时有些就有些长了,不过好在编译的东西没啥问题。

好了,编译就学到这里啦,尽管依然一头雾水,不过可是慢慢学啦。

参考链接


This page is synchronized from the post: 尝试编译EOS

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×