主页 > imtoken百科 > 以太坊(ETH)场外交易(逻辑)的实现

以太坊(ETH)场外交易(逻辑)的实现

imtoken百科 2023-09-26 05:08:21

我已经几个月没有更新我的博客了。 几年前我太忙了。 我每天都跟不上新事物。 打算总结一下这几个月做的事情,想到什么就写什么。

在过去的几个月里,我在一个加密货币的场外交易平台上工作。 目前我只做过基于以太坊的交易。 本文首先写平台的整体逻辑。

OTC交易所的技术门槛很低以太坊交易系统,因为法币(人民币)相关的逻辑都是用户线下完成的,所以用到了区块链相关的技术,只有充值提币的部分,剩下的就是普通的网络开发工作。

网站人员配置原因只有我和一个新的前端工程师,进度很急,所以选择了大家最熟悉的ruby on rails作为后端语言,编写了API和后台管理工具; 前端选择了react,因为前端工程师有使用vue,想学习react。 刚好对react比较熟悉,以后可以一起写页面。 web的发展我就不多说了。 没有什么新鲜事。 主要写以太坊相关的技术应用。

以ETH为例,OTC交易所的逻辑是用户充值ETH到我们平台,然后通过现场交易,用户只需要在数据库层面划转余额,用户可以随时提币到自己的ETH钱包。 看了很多老牌交易所的充值提现机制,最后的逻辑是这样的:

用户注册(初始注册后,使用ActiveRecord的after_create回调生成一个以太坊钱包绑定用户,但是后面监控以太坊主网ETH余额的效率很低以太坊交易系统,所以当用户有充值需求时,点击在充值页面生成绑定一个以太坊钱包),这样每个用户都会对应一个服务器生成的新钱包。 当用户需要充值时,他会向这个钱包转账。 后台会每隔五分钟定时运行,检查这些钱包的余额,并添加到用户Balance; 每天运行一次,监控钱包余额,将钱包中的余额转入钱包(热钱包,用于收集用户充值的币,转币给用户); 提币是通过多步身份验证,通过验证确认的提币请求将被记录,用户余额将被冻结。 它还会每五分钟运行一次,检查未处理的提现请求,执行转账操作,直接从热钱包转账到用户输入的钱包地址; 另外,还有一种冷钱包,即硬件钱包,服务器不会管理私钥。 当热钱包中有足够的硬币时,将其中的一部分转移到冷钱包中。 这算是一种安全准备,防止服务器被黑客攻击一下子丢失。 钱。

这些的具体实现我花了很多时间去研究,所以想写的详细一些,以后的博客中会以模块的形式记录下来。 还有很多陷阱。 “bug”也很感人,这么个满是bug的东西竟然能产生这么大的价值,期待以太坊未来的发展。