-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
197 lines (191 loc) · 36.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<!doctype html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta><title>Gavin's Home</title><link rel="manifest" href="/manifest.json"><meta name="application-name" content="Gavin's Home"><meta name="msapplication-TileImage" content="/img/favicon.svg"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-title" content="Gavin's Home"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="description" content="A bit of a code perfectionist—once started, can&#39;t stop until everything is spotless."><meta property="og:type" content="blog"><meta property="og:title" content="Gavin's Home"><meta property="og:url" content="https://konbluesky.github.io/"><meta property="og:site_name" content="Gavin's Home"><meta property="og:description" content="A bit of a code perfectionist—once started, can&#39;t stop until everything is spotless."><meta property="og:locale" content="en_US"><meta property="og:image" content="https://konbluesky.github.io/img/og_image.png"><meta property="article:author" content="Gavin"><meta property="twitter:card" content="summary"><meta property="twitter:image:src" content="https://konbluesky.github.io/img/og_image.png"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://konbluesky.github.io"},"headline":"Gavin's Home","image":["https://konbluesky.github.io/img/og_image.png"],"author":{"@type":"Person","name":"Gavin"},"publisher":{"@type":"Organization","name":"Gavin's Home","logo":{"@type":"ImageObject","url":{"text":"Gavin's Home"}}},"description":"A bit of a code perfectionist—once started, can't stop until everything is spotless."}</script><link rel="icon" href="/img/favicon.svg"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.0.0/css/all.css"><link data-pjax rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/styles/atom-one-light.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;600&family=Source+Code+Pro"><link data-pjax rel="stylesheet" href="/css/default.css"><style>body>.footer,body>.navbar,body>.section{opacity:0}</style><!--!--><!--!--><!--!--><!--!--><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/build/cookieconsent.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/lightgallery.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/justifiedGallery.min.css"><!--!--><!--!--><!--!--><style>.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}</style><script src="https://cdn.jsdelivr.net/npm/[email protected]/pace.min.js"></script><!--!--><!--!--><!-- hexo injector head_end start --><script>
(function () {
function switchTab() {
if (!location.hash) {
return;
}
const id = '#' + CSS.escape(location.hash.substring(1));
const $tabMenu = document.querySelector(`.tabs a[href="${id}"]`);
if (!$tabMenu) {
return;
}
const $tabMenuContainer = $tabMenu.parentElement.parentElement;
Array.from($tabMenuContainer.children).forEach($menu => $menu.classList.remove('is-active'));
Array.from($tabMenuContainer.querySelectorAll('a'))
.map($menu => document.getElementById($menu.getAttribute("href").substring(1)))
.forEach($content => $content.classList.add('is-hidden'));
if ($tabMenu) {
$tabMenu.parentElement.classList.add('is-active');
}
const $activeTab = document.querySelector(id);
if ($activeTab) {
$activeTab.classList.remove('is-hidden');
}
}
switchTab();
window.addEventListener('hashchange', switchTab, false);
})();
</script><!-- hexo injector head_end end --><meta name="generator" content="Hexo 7.3.0"></head><body class="is-3-column"><nav class="navbar navbar-main"><div class="container navbar-container"><div class="navbar-brand justify-content-center"><a class="navbar-item navbar-logo" href="/">Gavin's Home</a></div><div class="navbar-menu"><div class="navbar-start"><a class="navbar-item is-active" href="/">Home</a><a class="navbar-item" href="/archives">Archives</a><a class="navbar-item" href="/categories">Categories</a><a class="navbar-item" href="/tags">Tags</a><a class="navbar-item" href="/about">About</a></div><div class="navbar-end"><a class="navbar-item" target="_blank" rel="noopener" title="Download on GitHub" href="https://github.com/konbluesky"><i class="fab fa-github"></i></a><a class="navbar-item search" title="Search" href="javascript:;"><i class="fas fa-search"></i></a></div></div></div></nav><section class="section"><div class="container"><div class="columns"><div class="column order-2 column-main is-8-tablet is-8-desktop is-6-widescreen"><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-12-10T15:37:45.000Z" title="2024/12/10 23:37:45">2024-12-10</time></span><span class="level-item">Updated <time dateTime="2024-12-10T15:37:45.000Z" title="2024/12/10 23:37:45">2024-12-10</time></span><span class="level-item">a few seconds read (About 54 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/12/10/ic_hello/">Internet Computer (IC)</a></p><div class="content"><p>ICP 的全称(Internet Computer Protocol) 互联网计算机协议,是DFINITY 基金会(<a target="_blank" rel="noopener" href="https://dfinity.org)/">https://dfinity.org)</a></p>
<ul>
<li><a target="_blank" rel="noopener" href="https://internetcomputer.org/docs/current/home">https://internetcomputer.org/docs/current/home</a></li>
<li><a target="_blank" rel="noopener" href="https://github.com/dfinity/sdk">https://github.com/dfinity/sdk</a></li>
</ul>
<h4 id="支持的语言"><a href="#支持的语言" class="headerlink" title="支持的语言"></a>支持的语言</h4><ul>
<li>Motoko</li>
<li>Typescript</li>
<li>Rust</li>
<li>Solidity</li>
</ul>
<h4 id="支持的框架"><a href="#支持的框架" class="headerlink" title="支持的框架"></a>支持的框架</h4><ul>
<li>Juno</li>
<li>React</li>
<li>Testnets</li>
</ul>
</div></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-28T01:37:45.000Z" title="2024/11/28 09:37:45">2024-11-28</time></span><span class="level-item">Updated <time dateTime="2024-11-28T02:38:01.000Z" title="2024/11/28 10:38:01">2024-11-28</time></span><span class="level-item">6 minutes read (About 875 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/28/about_2FA/">关于2FA</a></p><div class="content"><h2 id="什么是-2FA?"><a href="#什么是-2FA?" class="headerlink" title="什么是 2FA?"></a>什么是 2FA?</h2><p><strong>2FA(Two-Factor Authentication)</strong>,即双因素认证,是一种通过两种不同类别的验证手段来提高账户安全性的身份验证方法。它通过结合两个验证因素,确保即使一个验证手段被泄露,攻击者也难以完成身份冒充。</p>
<h3 id="两种验证因素的类型:"><a href="#两种验证因素的类型:" class="headerlink" title="两种验证因素的类型:"></a>两种验证因素的类型:</h3><ol>
<li><strong>知识</strong>(Something you know)<ul>
<li>用户知道的内容,如密码、PIN 码等。</li>
</ul>
</li>
<li><strong>拥有</strong>(Something you have)<ul>
<li>用户拥有的物品,如手机、硬件令牌(Token)或动态验证码(OTP)。</li>
</ul>
</li>
<li><strong>生物特征</strong>(Something you are)<ul>
<li>用户自身的特征,如指纹、虹膜、面部识别。</li>
</ul>
</li>
</ol>
<h2 id="2FA-需要至少包含其中的两种因素。例如,“密码-动态验证码”是一种常见的-2FA-实现。"><a href="#2FA-需要至少包含其中的两种因素。例如,“密码-动态验证码”是一种常见的-2FA-实现。" class="headerlink" title="2FA 需要至少包含其中的两种因素。例如,“密码+动态验证码”是一种常见的 2FA 实现。"></a>2FA 需要至少包含其中的两种因素。例如,“密码+动态验证码”是一种常见的 2FA 实现。<br></div><a class="article-more button is-small is-size-7" href="/2024/11/28/about_2FA/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-27T03:10:22.000Z" title="2024/11/27 11:10:22">2024-11-27</time></span><span class="level-item">Updated <time dateTime="2024-11-27T04:38:19.000Z" title="2024/11/27 12:38:19">2024-11-27</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">3 minutes read (About 523 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/27/hummingbot_gateway/">Hummingbot Gateway AMM Middleware</a></p><div class="content"><p>Hummingbot Gateway 是一个 REST API,它公开与各种区块链(钱包、节点和链交互)和去中心化交易所(定价、交易和流动性提供)的连接。<br>它用 Typescript 编写,并利用现有的区块链和 DEX SDK。使用网关的优势在于它提供了一种与编程语言无关的方法来与区块链和 DEX 进行交互。</p></div><a class="article-more button is-small is-size-7" href="/2024/11/27/hummingbot_gateway/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-26T15:10:22.000Z" title="2024/11/26 23:10:22">2024-11-26</time></span><span class="level-item">Updated <time dateTime="2024-11-26T15:10:22.000Z" title="2024/11/26 23:10:22">2024-11-26</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">7 minutes read (About 1083 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/26/hummingbot_dev_env/">Hummingbot Macos下搭建开发调试环境</a></p><div class="content"><p>HummingBot中文社区组织交易比赛,时间从11.25-12.2号为期一周,25号折腾了一上午BN子账号API token问题,到底还是被BN的统一账户模式坑了下.(感谢社区Dolm的耐心帮助.)</p>
<p>今天抽空把本地环境部署了下,方便交易策略的开发和调试.</p>
<p>之前在ubuntu的云主机上运行hummingBot过程比较丝滑,倒没碰到什么大问题;<br>本地是Macos环境,乱七八糟的环境太乱了,过然还是碰到了一些问题,记录下.</p></div><a class="article-more button is-small is-size-7" href="/2024/11/26/hummingbot_dev_env/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-15T15:10:22.000Z" title="2024/11/15 23:10:22">2024-11-15</time></span><span class="level-item">Updated <time dateTime="2024-11-15T15:10:22.000Z" title="2024/11/15 23:10:22">2024-11-15</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">2 minutes read (About 281 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/15/hummingbot_dashboard/">Hummingbot Dashboard</a></p><div class="content"><p>Hummingbot Dashboard</p>
<blockquote>
<p>Hummingbot Dashboard 是一款开源应用,旨在帮助用户创建、回测和优化各种算法交易策略。一旦策略得到完善,它们可以作为 Hummingbot 实例部署到实盘交易模式中,从策略制定到实际交易执行实现无缝衔接。</p>
</blockquote>
<h3 id="功能"><a href="#功能" class="headerlink" title="功能"></a>功能</h3><ul>
<li><strong>机器人编排</strong>:部署和管理多个 Hummingbot 实例</li>
<li><strong>策略回测与优化</strong>:通过历史数据评估策略表现,并使用 Optuna 进行优化</li>
<li><strong>一键部署</strong>:轻松将策略部署为 Hummingbot 实例,支持模拟或实盘交易</li>
<li><strong>性能分析监控</strong>:监控并分析已部署策略的表现</li>
<li><strong>凭证管理</strong>:创建和管理 API 密钥的独立账户</li>
</ul>
<p>文档:<a target="_blank" rel="noopener" href="https://hummingbot.org/dashboard/">https://hummingbot.org/dashboard/</a></p>
<hr>
<h2 id="安装Dashboard-两种方式"><a href="#安装Dashboard-两种方式" class="headerlink" title="安装Dashboard 两种方式"></a>安装Dashboard 两种方式</h2><h3 id="build-from-source"><a href="#build-from-source" class="headerlink" title="build from source"></a>build from source</h3><p><a target="_blank" rel="noopener" href="https://github.com/hummingbot/dashboard#installation">https://github.com/hummingbot/dashboard#installation</a></p>
<h2 id="docker"><a href="#docker" class="headerlink" title="docker"></a>docker</h2><p>先装docker compose</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">sudo curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose</span><br><span class="line">sudo chmod +x /usr/local/bin/docker-compose</span><br><span class="line">docker-compose --version</span><br><span class="line"></span><br><span class="line">git clone https://github.com/hummingbot/deploy</span><br><span class="line">cd deploy</span><br><span class="line">bash setup.sh</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<h5 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h5><ul>
<li><a target="_blank" rel="noopener" href="https://hummingbot.org/v1-strategies/">Hummingbot stategies_v1</a></li>
</ul>
</div></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-15T06:23:22.000Z" title="2024/11/15 14:23:22">2024-11-15</time></span><span class="level-item">Updated <time dateTime="2024-11-15T06:45:22.000Z" title="2024/11/15 14:45:22">2024-11-15</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">4 minutes read (About 644 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/15/hummingbot_create_simple_pmm_bot/">Hummingbot Create First Strategy Bot</a></p><div class="content"><p>使用simple_amm策略创建第一个机器人</p>
<img src="/2024/11/15/hummingbot_create_simple_pmm_bot/pmm-logic.png" class=""></div><a class="article-more button is-small is-size-7" href="/2024/11/15/hummingbot_create_simple_pmm_bot/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-15T03:45:22.000Z" title="2024/11/15 11:45:22">2024-11-15</time></span><span class="level-item">Updated <time dateTime="2024-11-15T03:45:22.000Z" title="2024/11/15 11:45:22">2024-11-15</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">3 minutes read (About 510 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/15/hummingbot_strategy_v2/">Hummingbot Strategies v2</a></p><div class="content"><img src="/2024/11/15/hummingbot_strategy_v2/strategy_v2_simple.png" class="">
<h2 id="组件"><a href="#组件" class="headerlink" title="组件"></a>组件</h2><p>v2 对比 v1 来说,架构做了调整,多了几个组件更好的工作和解耦</p>
<ul>
<li><p><strong>脚本(Script)</strong>:所有策略的入口点,这个Python文件负责协调整个策略的执行。它可以是一个包含所有策略逻辑的简单文件,或者是一个加载一个或多个控制器的文件。</p>
</li>
<li><p><strong>市场数据提供器(Market Data Provider)</strong>:用于访问交易所的市场数据的单一入口,比如历史OHCLV(开盘价、高点、低点、收盘价、成交量)K线数据、订单簿数据和交易记录。</p>
</li>
<li><p><strong>执行器(Executor)</strong>:根据用户预设管理订单和仓位,确保根据策略指令下单、修改或取消订单。</p>
</li>
<li><p><strong>控制器(Controller)</strong>:基于策略控制器的基础类(如方向性策略或做市策略)定义一个交易策略。</p>
</li>
</ul></div><a class="article-more button is-small is-size-7" href="/2024/11/15/hummingbot_strategy_v2/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-14T08:30:22.000Z" title="2024/11/14 16:30:22">2024-11-14</time></span><span class="level-item">Updated <time dateTime="2024-11-14T11:42:16.000Z" title="2024/11/14 19:42:16">2024-11-14</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">2 minutes read (About 320 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/14/hummingbot_strategy_v1/">Hummingbot Strategies v1</a></p><div class="content"><p>Hummingbot 内置很多策略模板分v1/v2,目前社区表示全力发展v2版的策略,v1虽然官方不维护了,但是不影响我们学习; </p>
<p>v1的策略在<code>/hummingbot/strategy</code>目录里</p>
<table>
<thead>
<tr>
<th>策略</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>pure_market_making</td>
<td>Hummingbot 的原始单对市场做市策略</td>
</tr>
<tr>
<td>cross_exchange_market_making</td>
<td>一种通过在另一个交易所对冲来减轻库存风险的做市策略</td>
</tr>
<tr>
<td>amm_arb</td>
<td>一种利用 AMM 去中心化交易所与其他交易所之间价格差异的套利策略</td>
</tr>
<tr>
<td>avellaneda_market_making</td>
<td>基于经典的 Avellaneda-Stoikov 论文的单对市场做市策略</td>
</tr>
<tr>
<td>cross_exchange_mining</td>
<td>社区维护的交叉交易所做市策略的修改版</td>
</tr>
<tr>
<td>hedge</td>
<td>使用永续合约对冲现货交易所的库存风险</td>
</tr>
<tr>
<td>liquidity_mining</td>
<td>使用单一的基础币或报价币在多个交易对上提供流动性</td>
</tr>
<tr>
<td>perpetual_market_making</td>
<td>社区维护的永续市场做市策略</td>
</tr>
<tr>
<td>spot_perpetual_arbitrage</td>
<td>利用现货市场与永续合约交易所之间的价格差异进行套利</td>
</tr>
<tr>
<td>twap</td>
<td>在一定时间段内批量下限价单</td>
</tr>
<tr>
<td>amm-v3-lp</td>
<td>动态维护 AMM 去中心化交易所中的区间流动性头寸</td>
</tr>
</tbody></table></div><a class="article-more button is-small is-size-7" href="/2024/11/14/hummingbot_strategy_v1/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-12T02:26:20.000Z" title="2024/11/12 10:26:20">2024-11-12</time></span><span class="level-item">Updated <time dateTime="2024-11-12T05:52:09.000Z" title="2024/11/12 13:52:09">2024-11-12</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">a minute read (About 164 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/12/hummingbot_post_install/">Hummingbot 目录结构</a></p><div class="content"><p>Hummingbot 目录结构</p></div><a class="article-more button is-small is-size-7" href="/2024/11/12/hummingbot_post_install/#more">Read more</a></article></div><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2024-11-11T02:42:20.000Z" title="2024/11/11 10:42:20">2024-11-11</time></span><span class="level-item">Updated <time dateTime="2024-11-11T15:12:12.000Z" title="2024/11/11 23:12:12">2024-11-11</time></span><span class="level-item"><a class="link-muted" href="/categories/HummingBot/">HummingBot</a></span><span class="level-item">2 minutes read (About 250 words)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/2024/11/11/hummingbot_install/">Hummingbot Install(macos)</a></p><div class="content"><p>Hummingbot Macos 安装步骤</p>
<img src="/2024/11/11/hummingbot_install/main.png" class=""></div><a class="article-more button is-small is-size-7" href="/2024/11/11/hummingbot_install/#more">Read more</a></article></div><nav class="pagination" role="navigation" aria-label="pagination"><div class="pagination-previous is-invisible is-hidden-mobile"><a href="/page/0/">Previous</a></div><div class="pagination-next"><a href="/page/2/">Next</a></div><ul class="pagination-list is-hidden-mobile"><li><a class="pagination-link is-current" href="/">1</a></li><li><a class="pagination-link" href="/page/2/">2</a></li><li><a class="pagination-link" href="/page/3/">3</a></li></ul></nav></div><div class="column column-left is-4-tablet is-4-desktop is-3-widescreen order-1"><div class="card widget" data-type="profile"><div class="card-content"><nav class="level"><div class="level-item has-text-centered flex-shrink-1"><div><figure class="image is-128x128 mx-auto mb-2"><img class="avatar" src="/img/apple-touch-icon.png" alt="Gavin"></figure><p class="title is-size-4 is-block" style="line-height:inherit;">Gavin</p><p class="is-size-6 is-block">Full-Stack Engineer & Web3 Developer</p><p class="is-size-6 is-flex justify-content-center"><i class="fas fa-map-marker-alt mr-1"></i><span>ZheJiang, China</span></p></div></div></nav><nav class="level is-mobile"><div class="level-item has-text-centered is-marginless"><div><p class="heading">Posts</p><a href="/archives/"><p class="title">22</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">Categories</p><a href="/categories/"><p class="title">2</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">Tags</p><a href="/tags/"><p class="title">14</p></a></div></div></nav><div class="level"><a class="level-item button is-primary is-rounded" href="https://github.com/konbluesky" target="_blank" rel="me noopener">Follow</a></div><div class="level is-mobile is-multiline"><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Github" href="https://github.com/konbluesky"><i class="fab fa-github"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Facebook" href="https://facebook.com"><i class="fab fa-facebook"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Twitter" href="https://twitter.com/blackjackhoho"><i class="fab fa-twitter"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Dribbble" href="https://dribbble.com"><i class="fab fa-dribbble"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="RSS" href="/"><i class="fas fa-rss"></i></a></div></div></div><!--!--><div class="card widget" data-type="links"><div class="card-content"><div class="menu"><h3 class="menu-label">Links</h3><ul class="menu-list"><li><a class="level is-mobile" href="https://github.com/konbluesky" target="_blank" rel="noopener"><span class="level-left"><span class="level-item">Github</span></span><span class="level-right"><span class="level-item tag">github.com</span></span></a></li><li><a class="level is-mobile" href="https://my.oschina.net/u/261246" target="_blank" rel="noopener"><span class="level-left"><span class="level-item">OsChina</span></span><span class="level-right"><span class="level-item tag">my.oschina.net</span></span></a></li></ul></div></div></div><div class="card widget" data-type="archives"><div class="card-content"><div class="menu"><h3 class="menu-label">Archives</h3><ul class="menu-list"><li><a class="level is-mobile" href="/archives/2024/12/"><span class="level-start"><span class="level-item">December 2024</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2024/11/"><span class="level-start"><span class="level-item">November 2024</span></span><span class="level-end"><span class="level-item tag">13</span></span></a></li><li><a class="level is-mobile" href="/archives/2024/10/"><span class="level-start"><span class="level-item">October 2024</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/archives/2024/09/"><span class="level-start"><span class="level-item">September 2024</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2024/07/"><span class="level-start"><span class="level-item">July 2024</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2024/02/"><span class="level-start"><span class="level-item">February 2024</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/archives/2018/02/"><span class="level-start"><span class="level-item">February 2018</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li></ul></div></div></div><div class="card widget" data-type="tags"><div class="card-content"><div class="menu"><h3 class="menu-label">Tags</h3><div class="field is-grouped is-grouped-multiline"><div class="control"><a class="tags has-addons" href="/tags/Architecture/"><span class="tag">Architecture</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/HummingBot/"><span class="tag">HummingBot</span><span class="tag">9</span></a></div><div class="control"><a class="tags has-addons" href="/tags/IC/"><span class="tag">IC</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Internet-Computer/"><span class="tag">Internet Computer</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Java/"><span class="tag">Java</span><span class="tag">5</span></a></div><div class="control"><a class="tags has-addons" href="/tags/Python/"><span class="tag">Python</span><span class="tag">6</span></a></div><div class="control"><a class="tags has-addons" href="/tags/SpringBoot/"><span class="tag">SpringBoot</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/bsc/"><span class="tag">bsc</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/jasypt/"><span class="tag">jasypt</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/miniconda/"><span class="tag">miniconda</span><span class="tag">2</span></a></div><div class="control"><a class="tags has-addons" href="/tags/optimization/"><span class="tag">optimization</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/python/"><span class="tag">python</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/tags/zsh/"><span class="tag">zsh</span><span class="tag">1</span></a></div><div class="control"><a class="tags has-addons" href="/tags/%E6%97%A5%E5%BF%97%E6%B8%85%E7%90%86/"><span class="tag">日志清理</span><span class="tag">1</span></a></div></div></div></div></div><div class="card widget" data-type="subscribe-email"><div class="card-content"><div class="menu"><h3 class="menu-label">Subscribe for updates</h3><form action="https://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('https://feedburner.google.com/fb/a/mailverify?uri=','popupwindow','scrollbars=yes,width=550,height=520');return true"><input type="hidden" value="" name="uri"><input type="hidden" name="loc" value="en_US"><div class="field has-addons"><div class="control has-icons-left is-expanded"><input class="input" name="email" type="email" placeholder="Email"><span class="icon is-small is-left"><i class="fas fa-envelope"></i></span></div><div class="control"><input class="button" type="submit" value="Subscribe"></div></div></form></div></div></div><div class="column-right-shadow is-hidden-widescreen"></div></div><div class="column column-right is-4-tablet is-4-desktop is-3-widescreen is-hidden-touch is-hidden-desktop-only order-3"><div class="card widget" data-type="categories"><div class="card-content"><div class="menu"><h3 class="menu-label">Categories</h3><ul class="menu-list"><li><a class="level is-mobile" href="/categories/CarryCoin/"><span class="level-start"><span class="level-item">CarryCoin</span></span><span class="level-end"><span class="level-item tag">7</span></span></a></li><li><a class="level is-mobile" href="/categories/HummingBot/"><span class="level-start"><span class="level-item">HummingBot</span></span><span class="level-end"><span class="level-item tag">9</span></span></a></li></ul></div></div></div><div class="card widget" data-type="recent-posts"><div class="card-content"><h3 class="menu-label">Recents</h3><article class="media"><div class="media-content"><p class="date"><time dateTime="2024-12-10T15:37:45.000Z">2024-12-10</time></p><p class="title"><a href="/2024/12/10/ic_hello/">Internet Computer (IC)</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2024-11-28T01:37:45.000Z">2024-11-28</time></p><p class="title"><a href="/2024/11/28/about_2FA/">关于2FA</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2024-11-27T03:10:22.000Z">2024-11-27</time></p><p class="title"><a href="/2024/11/27/hummingbot_gateway/">Hummingbot Gateway AMM Middleware</a></p><p class="categories"><a href="/categories/HummingBot/">HummingBot</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2024-11-26T15:10:22.000Z">2024-11-26</time></p><p class="title"><a href="/2024/11/26/hummingbot_dev_env/">Hummingbot Macos下搭建开发调试环境</a></p><p class="categories"><a href="/categories/HummingBot/">HummingBot</a></p></div></article><article class="media"><div class="media-content"><p class="date"><time dateTime="2024-11-15T15:10:22.000Z">2024-11-15</time></p><p class="title"><a href="/2024/11/15/hummingbot_dashboard/">Hummingbot Dashboard</a></p><p class="categories"><a href="/categories/HummingBot/">HummingBot</a></p></div></article></div></div></div></div></div></section><footer class="footer"><div class="container"><div class="level"><div class="level-start"><a class="footer-logo is-block mb-2" href="/">Gavin's Home</a><p class="is-size-7"><span>© 2024 Gavin</span> Powered by <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a> & <a href="https://github.com/ppoffice/hexo-theme-icarus" target="_blank" rel="noopener">Icarus</a></p><p class="is-size-7">© 2019</p></div><div class="level-end"><div class="field has-addons"><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Creative Commons" href="https://creativecommons.org/"><i class="fab fa-creative-commons"></i></a></p><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Attribution 4.0 International" href="https://creativecommons.org/licenses/by/4.0/"><i class="fab fa-creative-commons-by"></i></a></p><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Download on GitHub" href="https://github.com/ppoffice/hexo-theme-icarus"><i class="fab fa-github"></i></a></p></div></div></div></div></footer><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/min/moment-with-locales.min.js"></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js" defer></script><script>moment.locale("en");</script><script>var IcarusThemeSettings = {
article: {
highlight: {
clipboard: true,
fold: 'unfolded'
}
}
};</script><script data-pjax src="/js/column.js"></script><script src="/js/animation.js"></script><a id="back-to-top" title="Back to top" href="javascript:;"><i class="fas fa-chevron-up"></i></a><script data-pjax src="/js/back_to_top.js" defer></script><!--!--><!--!--><!--!--><script src="https://cdn.jsdelivr.net/npm/[email protected]/build/cookieconsent.min.js" defer></script><script>window.addEventListener("load", () => {
window.cookieconsent.initialise({
type: "info",
theme: "edgeless",
static: false,
position: "bottom-left",
content: {
message: "This website uses cookies to improve your experience.",
dismiss: "Got it!",
allow: "Allow cookies",
deny: "Decline",
link: "Learn more",
policy: "Cookie Policy",
href: "https://www.cookiesandyou.com/",
},
palette: {
popup: {
background: "#edeff5",
text: "#838391"
},
button: {
background: "#4b81e8"
},
},
});
});</script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/lightgallery.min.js" defer></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/jquery.justifiedGallery.min.js" defer></script><script>window.addEventListener("load", () => {
if (typeof $.fn.lightGallery === 'function') {
$('.article').lightGallery({ selector: '.gallery-item' });
}
if (typeof $.fn.justifiedGallery === 'function') {
if ($('.justified-gallery > p > .gallery-item').length) {
$('.justified-gallery > p > .gallery-item').unwrap();
}
$('.justified-gallery').justifiedGallery();
}
});</script><!--!--><!--!--><script src="https://cdn.jsdelivr.net/npm/[email protected]/pjax.min.js"></script><script src="/js/pjax.js"></script><!--!--><!--!--><!--!--><script data-pjax src="/js/main.js" defer></script><div class="searchbox"><div class="searchbox-container"><div class="searchbox-header"><div class="searchbox-input-container"><input class="searchbox-input" type="text" placeholder="Type something..."></div><a class="searchbox-close" href="javascript:;">×</a></div><div class="searchbox-body"></div></div></div><script src="/js/insight.js" defer></script><script>document.addEventListener('DOMContentLoaded', function () {
loadInsight({"contentUrl":"/content.json"}, {"hint":"Type something...","untitled":"(Untitled)","posts":"Posts","pages":"Pages","categories":"Categories","tags":"Tags"});
});</script></body></html>