怎样部署ENS

【介绍】

ENS(Ethereum Name Service),是建立在以太坊区块系统上的域名系统。

ENS类似DNS(Domain Name Service),但提供的不是Internet网址,而是将以太坊(Ethereum)钱包地址和智能合约地址以 NAME.eth 网址的方式表示,可以用于转帐或存取智能合约等。

官网:https://ens.domains/
源码:https://github.com/ensdomains
社区:https://gitter.im/ethereum/go-ethereum/name-registry

参考:https://ethfans.org/posts/dive-in-ens
参考:https://zhuanlan.zhihu.com/p/27528147
参考:https://www.jianshu.com/p/446811dfc742
参考:https://www.94eth.com/tutorial/shen-ru-qian-chu-yi-tai-fang-05-ens-yu-ming-xi-tong

【申请】

用户首先需要通过竞标获得.eth域名,然后再将.eth域名绑定到对应的以太坊地址。

准备一个以太币钱包地址

不要使用交易所提供的钱包来竞标ENS,不然即使竞标成功,所有权也属于交易所。

少量以太币

ENS网域的最低起标价是0.01ETH。

竞标规则

首先是写下标价,并将相应数量的以太币传入ENS票箱。三天后就可以公告这个网域竞标(揭标),其他人能看到这个网域已经开始竞标了。如果他们有兴趣,也可以加入这个网域的竞标。

最终价高者得,但出价最高的人只需要缴交第二高者的标价。ENS会自动退回所有参与者的标金,也会返回得标者标金的差额。如果得标者一年后未续约,ENS将释出此网域并退回押金。

模拟测试

参考:https://blog.csdn.net/liyuechun520/article/details/78110372

1. 查询可申请网域并且给出竞标价格

打开:https://www.myetherwallet.com/#ens

输入你想要申请的ENS网域,注意是大于等于7个字符。

2. 如果网域可用,逐步解锁,点击Start the Auction按钮开始竞标。

3. 需要花费0.01个ETH参与ENS竞标,这个ETH竞标的费用将从钱包地址中扣除。

4. 在上图中有两个时间,时间差为2天,也就是参与ENS竞标的时间为2天。

5. Copy and save this 选项中的JSON串需要拷贝并且保存下来,在后面有用。

{
    "name": "liyuechun",
    "nameSHA3": "0x9c73e1828d2734ba4ce551572cf9839949b77971a1166579bf8e992d2596cc85",
    "owner": "0xf055775ebd516e7419ae486c1d50c682d4170645",
    "value": "10000000000000000",
    "secret": "pigeon fashion wife",
    "secretSHA3": "0xea32c299c1865252936c0ef8672a52c36f0a80edea4056907750396b128bff90"
}

6. 最后点击”是的,我确定!”发送交易按钮,然后耐心等待竞标结果。

7. 查看交易信息

打开:https://etherscan.io/address/钱包地址 查看交易信息,确保处于竞标状态中。

8. 公告竞标:3天后显示竞标价格,4天后,拍卖完成。3天后一定要按时确认价格公告,在没有其他人参与竞标的情况下,当前的标的价格应该是0.01 ETH。否则之前你竞标的ETH将进入黑洞,再也找不回来。

【交易】

官网:https://www.myetherwallet.com/#domainsale
文档:https://domainsale.readthedocs.io/en/latest/
介绍:https://medium.com/@jgm.orinoco/domainsale-an-on-chain-secondary-ens-market-b3330f6e5dda
社区:https://gitter.im/wealdtech/domainsale

DomainSale is a secondary market for the Ethereum Name Service that allows you to buy and sell domains that are already owned.

How can I sell a domain?
+ 1. Transfer the domain to DomainSale
+ 2. Set immediate and/or auction prices
+ 3. Finish the auction (if applicable)

How can I buy a domain?
+ 1. Obtain details of the sale
+ 2. Buy the domain outright by providing the purchase price
+ 3a. Bid on the domain
+ 3b. Wait for the auction to finish
+ 3c. Finish the auction

怎样使用SELinux

【介绍】

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。

参考:https://blog.csdn.net/yanjun821126/article/details/80828908

参考:https://amon.org/ssh

SELinux 有三种工作模式,分别是:

1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
2. permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
3. disabled:关闭 SELinux。

SELinux 工作模式可以在 /etc/selinux/config 中设定。
如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。
enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。

需要注意的是,如果系统已经在关闭 SELinux 的状态下运行了一段时间,在打开 SELinux 之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文(我表示我重启了大约 10 分钟,还以为是死机了……)。

SELinux 日志的记录需要借助 auditd.service 这个服务,请不要禁用它。

【报错】

报错:setenforce: SELinux is disabled

参考:https://blog.csdn.net/qq_28423997/article/details/70176981

当启动 SELinux :

getenforce

报错:

setenforce: SELinux is disabled

说明selinux已经被彻底关闭。

开启:

编辑 /etc/selinux/config :

SELINUX=permissive

然后重启。

关闭:

编辑 /etc/selinux/config :

SELINUX=disabled

【命令】

查看 SElinux 的状态:

sestatus -v

启动:

setenforce 1

临时关闭:

setenforce 0

怎样安装使用Drupal

【介绍】

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。

官网:https://www.drupal.org

社区:http://www.drupalchina.cn

【插件】

插件:https://www.drupal.org/project/domain_finder

插件:https://www.drupal.org/project/whois

【应用】

案例:https://sedo.com

案例:https://portal.afilias.info

怎样编写shell脚本

【介绍】

Shell脚本(Shell Script)与Windows/Dos下的批处理相似,使用Linux/Unix下的shell命令预先放入到一个纯文本文件中,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。

Shell脚本提供了数组,循环,条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法。

Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。

Shell既是一种命令语言,又是一种程序设计语言(Shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。

【语法】

打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为 .sh(sh代表shell)(扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名也可以用.php)。

#!/bin/bash
echo "Hello World !"

“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
echo命令用于向窗口输出文本。

【回车】

参考:https://blog.csdn.net/evils798/article/details/7202778
参考:https://www.cnblogs.com/mecca/p/4414474.html
参考:http://www.bubuko.com/infodetail-1879066.html

以 nohup 启动服务可以在终端关闭后保证Linux环境下的服务在后台继续运行。

参考:http://amon.org/nohup

通常在终端执行:

nohup sh catalina.sh run &

需要执行一下回车键才能保证命令进行,为了保证 nohup 在脚本中被成功调用执行,需要在脚本中增加回车的符,否则命令执行不成功。

以下是以 nohup 方式启动 tomcat 的脚本:

#!/bin/bash
str=$"/n"
cd /SAPP/tomcat-admin/bin
nohup sh catalina.sh run &
sstr=$(echo -e $str)
echo $sstr
tail -20 nohup.out > /home/log/admin.log

【报错】

编辑好shell脚本,上传到服务器,尝试执行。

 ./go.sh

报错1:

如果报错:

-bash: ./go.sh: Permission denied

需要修改权限:

chmod +x go.sh

报错2:

如果报错:

-bash: ./go.sh: /bin/bash^M: bad interpreter: No such file or directory

因为shell脚本在Windows环境下编辑再上传的,需要使用 dos2unix 处理:

yum intsall -y dos2unix && dos2unix go.sh

怎样使用复制命令 cp

在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。怎样避免呢?

参考:https://blog.csdn.net/xinluke/article/details/52229431

【A. 使用原生的cp命令】

/bin/cp -rf xxxx

推荐。

【B. 取消cp命令别名】

去掉 cp 命令的别名,这时你再用 cp -rf 复制文件时,就不会要求确认:

unalias cp

复制完成后恢复别名:

alias cp='cp -i'