http-rpc

Kitty Cloud(HTTP_RPC)的全局异常处理

三世轮回 提交于 2020-08-08 21:00:54
项目地址 https://github.com/yinjihuan/kitty-cloud 异常处理不用我讲,大家都清楚。单独的异常处理太繁琐,全局异常处理可以在一个应用中统一进行异常的处理,非常方便。目前全局异常处理用的也越来越广泛,今天跟大家来聊一聊 Kitty Cloud 中的全局异常是如何处理的? 为什么要使用全局异常处理呢? 使用全局异常处理后,我们不需要定义固定类型的返回值,当业务代码报错的时候直接通过异常处理方式来返回给前端或者 API 调用方错误信息。 不使用全局异常处理案例 Web 层 比如我们定义了一个 ResponseData 用来返回固定格式的数据,正常情况下不会有问题,给前端返回的格式也是固定的,如下: { "code":200, "data":{ "name":"yinjihuan" }, "message":"success", } 如果业务发生异常,那么这个接口就不会返回上面那样固定格式的数据了,会给我们返回错误页面。除了代码异常还有一种情况就是当访问的 Uri 错误的时候,也会给调用方返回 404 的错误页面,如下: 如果是传统的 Web 项目,里面包含了页面这是没问题的,我们也可以自定义错误页面让用户体验更好一点。但是在这个基本上是前后端分离的开发模式下,后端只提供的数据的 API,不会有页面的内容。所以就算出错了,就算使用者调用的 API

基于Mac环境搭建以太坊私有区块链进行挖矿模拟

半城伤御伤魂 提交于 2020-04-20 18:56:37
第一步:相关软件的安装 go-ethereum客户端安装 Go-ethereum客户端通常被称为Geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。Geth得益于Go语言的多平台特性,支持在多个平台上使用(比如Windows、Linux、Mac)。Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等。 Geth可以使用下面三种JSON RPC协议进行连接: 内部进程通信(IPC) :内部通讯,通常用于一台电脑内。 远程程序调用(RCP) :跨计算机的通讯。通常使用TCP和HTTP协议。 WS(Web sockets) :使用sockets连接Geth。 chain ID含义: chain ID:1 主网公链 chain ID:2 Morden网络(仅对部分人开放) chain ID:3 Ropsten网络 chain ID:4 Rinkeby网络 chain ID 大于4的是私有网络 使用Geth --testnet连接到Ropsten网络,Geth --rinkeby连接到Rinkeby网络。 安装命令如下: brew tap ethereum/ethereum brew install ethereum 我的显示界面 检查是否安装成功,输入如下的命令 geth -