首先说说最近搞后台常用的命令:
后台使用nodejs编写,启动命令
1. node app.js
2. 使后台独自运行:forever -l app.log start app.js(app.log是控制台log文件,默认在forever的配置目录 :.forever/app.log),
查看后台运行程序:forever list
假如有一个,杀死命令:forever stop 0
重启命令:forever -l app.log -a start app.js,-a是继续添加的意思
linux用到的命令:
1. find / -name app.js 在当前目录查询app.js
2. ls -ltr 显示当前目录所有的文件
3. tail -1000f .forever/forever.log 实时显示最近的1000条数据
4. uname -a 查询当前服务器的版本信息
5. vi app.js. 编辑文件
6. cat app.js 显示文件内容
mac 命令:
mdfind "app.js"查找文件
ssh远程登录:
1. ssh root@192.168.1.101
2. ssh -i "~/.ssh/*.pem" root@92.69.108.21(假如存在*.pem)
bitcoin:https://zh-cn.bitcoin.it/wiki/API_reference_(JSON-RPC)
JSON-RPC
rpc连接需要运行’bitcoin -server’或’bitcoind’ 将使bitcoin以HTTP JSON-RPC服务器模式运行,否则rpc默认端口8332不能启动,
可以用命令启动:nohup /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -server &
nohup /Users/admin/applition/go-ethereum/build/bin/geth --fast --cache=512 --verbosity 0 --rpc --port 30304 --datadir "/Users/admin/bin/ethdata" &
这种启动方式,geth.ipc会在配置的目录中生成。
/Users/admin/applition/go-ethereum/build/bin/geth attach "/Users/admin/bin/ethdata/geth.ipc"
这样就实现共享,并进入console控制台
关于go-ethereum的使用 https://github.com/ethereum/go-ethereum/wiki/Management-APIs wiki都有介绍,都是英文的,耐心读读
https://www.ethereum.org/token,也是
下面介绍下web3.js,它是一个eth区块的服务,可以实现eth及token的所有功能,包含交易/查询等,调用它的api即可实现,
api介绍地址:https://github.com/ethereum/wiki/wiki/JavaScript-API
项目地址:https://github.com/qiao365/web3.js (部署开发)
以下讲的 以 node.js为例:
01 .ETH TOKEN 代币交易监听:
// 合约ABI
var abi = [{"constant":false,"inputs":[{"name":"addr","type":"address"},。。。。。,"type":"uint256"}],"name":"Approval","type":"event"}];
// 合约地址
var address = "0xd4fa1460F537bb9085d22C7bcCB5DD450Ef28e3a";
// 通过ABI和地址获取已部署的合约对象
var metacoin = web3.eth.contract(abi).at(address);
// 获取事件对象
var myEvent = metacoin.Transfer();
myEvent.watch(function(err, result) {
if (!err) {
console.log(result);
} else {
console.log(err);
}
});
02. ETH 所有区块监听
//这个是监听区块
var filter = web3.eth.filter("latest");
filter.watch((err, result)=>{ if(!err){ return genereateWatchHandle(addressMap, result)(); }else{ throw err; }; }); //这个是根据blockHash区块获取交易信息(不确定,先着么写) function genereateWatchHandle(addressMap, blockHash){ web3.eth.getBlock(blockHash, (err, lastBlock)=>{ if(!err){ resolve(lastBlock); }else{ reject(err); }; }); }