利率模型和风险控制是借贷协议的核心, 在AAVE中,利率的更新可以分为三个部分:
- 存币利率
- 活息借款利率
- 定息借款利率
至于风险控制,在后面的章节中,我们单独讨论。
利率模型和风险控制是借贷协议的核心, 在AAVE中,利率的更新可以分为三个部分:
至于风险控制,在后面的章节中,我们单独讨论。
AAVE是一个借贷协议, 因此, 核心是围绕着存款,借款,还款,清算这四大环节展开的。我认为, AAVE 之所以看起来很复杂, 非常重要的一点是因为定息借款的存在, 极大的提高了利率模型的复杂度, 否则, AAVE 应该更加清晰。
AAVE 架构图如下:
solidity 中有函数选择器(selector)的概念.
在 solidity 中,所有 public (或 external) 函数有一个特殊的成员selector, 它对应一个ABI 函数选择器。
evm 函数选择器是一个函数调用数据的前 4 字节,指定了要调用的函数。这就是某个函数签名的 Keccak 哈希的前 4 字节(高位在左的大端序) (译注:这里的 高位在左的大端序
,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。 这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括号括起来的参数类型列表,参数类型间由一个逗号分隔开,且没有空格。
简单来说,就是函数原型的 sha-3 hash值。
DEFI 上最初的应用就是借贷应用。借贷,顾名思义,是一个允许用户借贷代币的智能合约,它与银行类似,存款人把钱存入到借贷应用中(更具体的说,就是某个智能合约),借贷应用把你的钱借给借款人,并随着时间的推移赚取利息。当借款人资不抵债时,会触发清算,任何人都可以参与清算,清算成功时清算人将获取一定比例的清算奖励。同时,借贷应用的清算系统能够确保借贷系统的稳定,进而保证存款人的利益。
这里的keepalive与HTTP的keepalive不同,这里的keepalive是TCP层的keepalive,用处是当两台机器之间通信时,中间网络出现故障,这时,两端并无法感知网络故障这个事件,无法及时发现网络故障。
HTTP的keepalive是指,一个请求在请求头部增加一个keep alive的行,这时,服务端传输完成后,不会关闭这个TCP连接,还可以继续下次HTTP请求,提高了效率。
Linux内核关于TCP keepalive的说明在这里: http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html