go-ethereum开发之RPC调用教程
如果只是简单的获取ethereum节点的数据那么go-ethereum提供的ethclient完全足够了,可是如果涉及一些更自定义,更独特的接口,比如debug_traceBlock等以debug开头的rpc方法,那么只能自己构造请求和解析响应了。
如果只是简单的获取ethereum节点的数据那么go-ethereum提供的ethclient完全足够了,可是如果涉及一些更自定义,更独特的接口,比如debug_traceBlock等以debug开头的rpc方法,那么只能自己构造请求和解析响应了。
数据最终还是要落到某个地方的,很多时候都是关系型数据库,所以数据库的学习是必不可少的, 本教程主要记录sqlx的一些常用代码片段,便于快速掌握sqlx的增删改查操作(CRUD)。
这篇文章主要是阅读reqwest的源代码, 而底层关于hyper的实现这篇文章浅尝辄止, 仅仅只是过一下hyper请求的大致流程,以后对rust的掌握程度更高之后在看hyper的源代码。
reqwest是rust中比较知名和流行的一个http客户端, 这篇教程主要是收集了reqwest一些常用的代码片段,便于以后直接复制使用,文章结构主要是对标之前go语言的net/http客户端的快速入门教程。
阅读kube-apiserver
的过程中,会发现很多的AddPostStartHook
的代码,这部分代码用于执行kube-apiserver
启动之后的逻辑,因为他们放在启动后执行更适合,所以就提供了两种钩子(Hook), PostStartHook
和PreShutdownHook
。这里只看PostStartHook
,并且只看bootstrap-controller
对应的钩子函数。
从前文我们已经了解到kube-apiserver
内部有三个组件,分别是apiExtensionsServer
,kubeAPIServer
,aggregatorServer
, 为了方便用户扩展,所以存在apiExtensionsServer
, 因为k8s有自己的核心资源,所以需要kubeAPIServer
, 为了将两者结合起来所以需要aggregatorServer
, 那么aggregatorServer
怎么两者的资源集中在一起并提供给用户查询呢? 本文尝试从k8s的源代码中找到问题的答案。
之前看过kube-apiserver
请求处理链的相关内容,知道一些通用逻辑,如认证,鉴权,审计之类的内容都以一种链条的方式组合在一起依次调用,但是这些处理函数中并不包含准入的业务逻辑,之所以这样,我想是因为准入只针对修改请求,所以放在通用的处理链中会不太和谐,再者就是准入是比较重要的抽象,所以单独抽离出来了。
很早就想将自己的网站上传到IPFS上了,但是将网站上传到IPFS网络容易,让它一直存在却不容易,因为IPFS网络并不会永远保存上传的数据,只有热点数据才有可能一直被IPFS网络保存,最近搞了一个便宜的服务器可以运行IPFS服务,所以才有了这篇文章。
这里一节主要看kube-apiserver
的路由注册和最终映射到后端存储的处理函数是怎么构造的,kube-apiserver
中一共有三个组件,apiExtensionsServer
,kubeAPIServer
, aggregatorServer
,每个组件都有路由注册,但其实核心逻辑是差不多的。
如果认证成功,那么客户端的可以标识成了一个用户了,而这个用户一般至少拥有两个信息,用户和用户组。通过这两个信息就可以给用户鉴权了。