本文将告诉大家如何在 WPF 里面,从键盘事件 KeyEventArgs 参数里获取到 Scan Code 键盘按键的设备独立标识符的方法 概念: 以下来自 bing 的答案 键盘的 Scan Code...方法1: 推荐的方法,通过 Win32 函数获取,代码实现如下 KeyDown += MainWindow_KeyDown; private void MainWindow_KeyDown...GetValue(e); } 这两个方法获取到的值是相同的,如使用下面代码,判断相等成立 Debug.Assert(scanCode == (int) scanCodeFromWpf...; 但如 MapVirtualKeyW 函数所述,确实存在一些情况下,获取不到相同的结果 本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹,接着使用命令行...,进入 LaykechererolelQemyukilee 文件夹,即可获取到源代码
出于影响,我们采取了负责任的披露过程,这次攻击事件的披露前后相关时间线大致如下: 2018/6/28 慢雾区情报,USDT “假充值”漏洞攻击事件披露 2018/7/1 慢雾安全团队开始分析知名公链是否存在类似问题...2018/7/7 慢雾安全团队捕获并确认以太坊相关代币“假充值”漏洞攻击事件 2018/7/8 慢雾安全团队分析此次影响可能会大于 USDT “假充值”漏洞攻击事件,并迅速通知相关客户及慢雾区伙伴...2018/7/9 慢雾区对外发出第一次预警 2018/7/10 慢雾安全团队把细节同步给至少 10 家区块链生态安全同行 2018/7/11 细节报告正式公开 漏洞细节 以太坊代币交易回执中...攻击者可以利用存在该缺陷的代币合约向中心化交易所、钱包等服务平台发起充值操作,如果交易所仅判断如 TxReceipt Status 是 success(即上文提的 status 为 0x1(true)...其实这个二次判断可以通过 Event 事件日志来进行,很多中心化交易所、钱包等服务平台会通过 Event 事件日志来获取转账额度,以此判断转账的准确性。
跳转 1.1 对标签绑定点击事件 点我跳转 Page({ ... /*...* * 点击绑定的事件 */ clickMe:function(e){ var nid = e.currentTarget.dataset.nid; console.log...方式一 wxml 获取当前用户名 js getUserName:function(){ // 调用微信提供的接口获取用户信息...--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom...总结 标签(组件) text view image navigator,跳转到其他页面(默认只能跳转到非tabbar页面) button,按钮(特殊:建议获取用户信息时) 事件 bindtap <view
文中的Oracle服务完整代码地址:https://github.com/six-days/ethereum-oracle-service 二、服务架构 Oracle后端服务整体包含事件订阅模块、查询模块和回调模块...回调模块相对比较简单,首先将Oracle合约实例化了一个BoundContract对象,然后调用Transact方法发送交易。...1、Nonce托管 在回调模块中,调用合约时,我们并没有指定发起交易账号的Nonce值,而是由Transact方法在每次发起交易时,动态计算。这就会限制我们交易的并发。...针对这种情况,我的思路是对Nonce进行托管: •在缓存(内存或redis等)中维护账号对应的Nonce•每次发起交易时,从缓存中获取,每获取一次,缓存中的Nonce累加1•缓存中的Nonce定期和链上进行校对和同步...这里我的思路是可以从以下几个方面优化: •引入动态GasPrice,可以从https://ethgasstation.info网站中获取实时的GasPrice•指定GasLimit,防止由于合约问题消耗过多
如果想发出异步请求,可以把一个可选回调函数作为最后的参数传送给大多数函数。所有回调函数都采用错误优先(error-first)回调方式。...web3.eth.getTransactionReceipt():获取交易使用其哈希的细节。如果在区块链中发现交易,则返回交易数据对象;否则,返回null。...,回调函数将被调用两次。...第一次,广播交易之后调用它;第二次,挖出交易之后调用它。如果不提供回调函数,则proof变量的address属性被设成undefined。挖出交易之后,address属性将被设置。...事件对象显示三种方法:get、watch和stopWatching。get用于获取区块范围内的所有事件。watch与get类似,但是它在获取事件后还监听变化。
每当一笔交易提交到以太坊网络上时,它会经历一系列相当复杂的状态,而并非每个状态转换都是向前的——交易可能回滚到较早的状态、可能被另一个交易替换、还可能完全分叉。(下文中会详细描述交易的生命周期。)...——进入待处理状态并被节点中可用密钥签名的所有交易的哈希(而这种情况在公共节点上很少见) syncing——指示节点何时开始或停止同步 根据这些事件类型获取信息很受限,dapp 无法通过它们跟踪交易的完整生命周期...以太坊交易生命周期 以太坊交易是有复杂的生命周期的。每个交易都会经过多个的 state (状态),在整个过程中经历各种 state 的变更,可能前进也可能回滚。 ?...dfuse 以太坊交易状态跟踪器 API 使开发人员能够提交以太坊交易,然后在同一数据通道上即刻获取精细的状态更新,跟随交易在其整个生命周期中的进展。...dfuse 为 dapp 提供了完整的现代化基础架构层,即: 快速, 可扩展, 提供对区块链事件的高度精细的串流监听, 支持主动的 Webhook 形式的回调, 具有业内最高的可靠性。
API钓鱼事件,可理解为通过常规的钓鱼手段,包括并不限于假冒网上银行、垃圾邮件、虚假电商广告等不法手段,来获取收集用户的账号信息,并由此获得API接口权限,并通过大量的API接口操作来影响交易市场。...针对这次异常事件,币安提出了四点处理方案,包括删除全部API记录、回滚异常交易账户记录、返还手续费、以及成立币安投资者保护基金等。 那么删除API记录的做法能够在多大程度上弥补损失呢?...刘宏斐指出,从技术角度看,“如果是单纯删除API记录,其实作用不大,只能防止攻击者在短时间内不能进行再次攻击。...据刘宏斐介绍,KEX交易所目前采用的也是这种安全措施。 对于回滚交易的操作,刘宏斐认为,这仅能恢复事故之前的账户情况,对用户的利益做到一定程度的弥补,但对于“追回”黑客已经获取的利润则没有意义。...对于普通交易所用户来说,虽然账户记录已经回滚,但潜在地,会有相当一部分加密货币交易者对币安甚至所有的交易所安全性产生质疑与恐慌,甚至引发踩踏性跟风抛盘,这对于整个加密货币行业和区块链产业都会产生冲击。
API钓鱼事件,可理解为通过常规的钓鱼手段,包括并不限于假冒网上银行、垃圾邮件、虚假电商广告等不法手段,来获取收集用户的账号信息,并由此获得API接口权限,并通过大量的API接口操作来影响交易市场。...针对这次异常事件,币安提出了四点处理方案,包括删除全部API记录、回滚异常交易账户记录、返还手续费、以及成立币安投资者保护基金等。 ? 那么删除API记录的做法能够在多大程度上弥补损失呢?...刘宏斐指出,从技术角度看,“如果是单纯删除API记录,其实作用不大,只能防止攻击者在短时间内不能进行再次攻击。...据刘宏斐介绍,KEX交易所目前采用的也是这种安全措施。 对于回滚交易的操作,刘宏斐认为,这仅能恢复事故之前的账户情况,对用户的利益做到一定程度的弥补,但对于“追回”黑客已经获取的利润则没有意义。...对于普通交易所用户来说,虽然账户记录已经回滚,但潜在地,会有相当一部分加密货币交易者对币安甚至所有的交易所安全性产生质疑与恐慌,甚至引发踩踏性跟风抛盘,这对于整个加密货币行业和区块链产业都会产生冲击。
交易验证失败;2. 交易尚未在区块中执行;3. 无法获取最后一个块;4. 查询块或块头时,参数出错5....事件未注册;2....在拉取模式下,事件超时 SERVICE_LOG_INSTANCE_NOT_EXISTS 407 log instance not exists 日志实例不存在 SERVICE_TX_VERIFY_FAILED...invalid 指定的权重值无效 CHAIN_TX_GAS_INVALID 2000 the transaction runner can’t get enough gas from the tx 交易执行无法从交易获取足够的燃料...TEE_CONFIDENTIAL_TX_ENCRYPT_LOG_FAILURE 60009 Failed to encrypt confidential transaction’s log 加密回执中的
特点:简洁易用的事件驱动引擎(vn.event),作为事件驱动型交易程序的核心;涵盖针对如何使用API和事件驱动引擎开发交易程序的示例(vn.demo)。...quantdigger [2] 一个基于python的量化回测框架。...目前的功能包括:股票回测,期货回测。支持选股,套利,择时,组合策略。自带了一个基于matplotlib编写的简单的策略和k线显示界面,能满足广大量化爱好者基本的回测需求。设计上也兼顾了实盘交易。...easyquant [3] 股票量化框架,支持行情获取以及交易,基于easytrader和easyquotation 的量化交易框架。支持华泰、佣金宝、银河以及雪球模拟盘交易。...-quartz [5] 一个基于Pandas的量化回测框架,核心类库引入pandas,引入pylab库后能够实现可视化结果 AshareQuant [6] A股数据维护,把线上数据维护到mongodb
基础介绍 Pub/Sub功能(means Publish, Subscribe)即发布及订阅功能 基于事件的系统中,Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式...:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者。...当使用银行卡消费的时候,银行往往会通过微信、短信或邮件通知用户这笔交易的信息,这便是一种发布订阅模式,这里的发布是交易信息的发布,订阅则是各个渠道。...首先是银行的记账系统,收到了交易的命令,成功记账后,它就会把消息发送出来,这个时候,订阅者就可以收到这个消息进行处理了,观察者模式就是这个模式的典型应用了。...//$redis->subscribe(['chan'],array(new TestCall(),'callback') ); //如果回调函数是类中的方法名,这样写 // 回调函数,这里写处理逻辑
10.2.1 完成小程序二手交易站点微信登录开发 在小程序中需要使用后台对账户进行登录,这时跟 web 端一样,需要在后台添加一个私有用户组件: 添加了私有用户组建后,我们需要在页面的微信登录按钮上添加一个点击事件...我们此时为登录按钮添加了点击事件后,使用私有用户对象进行发起小程序登录操作,获取用户头像与昵称: 接下来为这个动作添加回调事件。...在回调事件中,我们需要创建两个文本变量存储头像与昵称,并且跳转到首页: 此时即完成了登录操作,若该账户没有进行注册将会自动进行注册。...10.2.2 完成小程序二手交易站点微信首页功能开发 首页的功能包括数据获取,数据获取需要创建一个数据库,该逻辑与 web 端实现一致: 接下来创建一个服务命名为获取数据,此实现流程与 web 端实现一致...点击图片选择按钮后使用文件接口对象读取本地图片: 接着为该动作创建一个回调,创建一个变量命名为上传图片路径,该变量用于获取文件的临时本地路径,并且使用这个这个变量作为文件接口上传的必要参数: 接着为上传动作添加回调
P2P路由阶段,那么它的网络速度就会快很多,很可能比先提交的但通过正常网络通信的交易更快到达出块节点,实现后发先至,从而提前被打包,从攻击场景来说攻击可以先通过正常网络成功发起一个交易,然后再通过 优化后的网络发起一个将当前余额清零或者其他可以让上一个交易不成功的攻击交易...,当攻击交易比正常交易先被打包后,正常的交易条件不再满足,交易被回滚,攻击者没有任何的支出,但很多DAPP的处理只会判断交易是否被成功发起,不判断后面是否出 现了回滚,这样它们仍会认为交易已成功,而给攻击者发放对应的数字商品...(因为该节点还不知道有情 况账号余额的交易),所以下注交易在开奖节点成功了(而当下注交易广播到出块BP时,因为攻击者账号余额为空,所以下注交易失败,所以攻击者无成本) 当游戏方直接根据节点的state获取开奖数据...DApp为增强游戏体验,自建节点运行DApp,游戏的奖励结算完全基于本地EOS节点的交易记录,由于自建节点的交易存在回滚的可能,黑客就利用了BP与自建节点的交易时间差完成了回滚攻击,无成本赢得奖励,此部分的具体攻击如下图所示...,一旦发现下注交易产生问题发生回滚,则奖励交易也应该一起回滚 脆弱的随机数机制 风险描述 这里指的不仅仅是伪随机函数的问题,而是整个随机数生成机制不够安全,导致可以被攻击者提前获取或猜测到随机数的结果
本事件一波三折,目前还在发酵中,但一场完全透明却匿名的网络犯罪却呈现在我们面前,这是历史上的首次。我们继续关注事件的进展。...在事件处置过程中,交易所暴露出安全性严重缺失,POS币钱包在线安全隐患严重等问题。...而且交易是从交易所公布的用户资金冷钱包里出帐的。前后一共有30个比特币是从用户冷钱包 1GRFNTyLwoyQnk7S3MFFAz5qPkdWp7YSoY 里直接支出的。 然后,就没有然后了。...回滚 然后比特儿开始联系所谓社区,要回滚交易区块,目前是否回滚成功不得而知。...5,POS币竟然可以由社区决定回滚,这又沉重打击了POS币的信心。 等等等等,这些事件在同一起黑客攻击事件中出现,充分反映了中国比特币行业的混乱无序,完全有理由怀疑其他交易所的安全性和偿付能力。
,而这个文件其实是ctp连接之后获取的,获取了当天的交易代码已经代码的信息。...,同时类里面的其他方法基本就是用来对这些事件进行响应的回调方法。 ...至于TICK事件什么时候发生,那么就是后面会讨论的事情了。 那么DataEngine就可以讨论到这里了,后面碰到相应事件的时候我们再回来看这里的事件处理回调函数。 ...def info(self, msg): """正常输出""" self.logger.info(msg) 还有一个比较重要的类中的方法就是log事件的回调函数...2018-11-29 21:52:02,025 INFO: CTP 结算信息确认完成 2018-11-29 21:52:02,688 INFO: CTP 交易合约信息获取完成 2018-11-29
error) console.log(JSON.stringify(result)); else console.error(error); }); 回调 Promise 事件(v1.0.0)...version.getNode((error,result)=>{console.log(result)}) v1.0.0:web3.eth.getNodeInfo().then(console.log) 基本信息查询 获取...web3.version.getNetwork((err, res)=>{console.log(res)}) v1.0.0:web3.eth.net.getId().then(console.log) 获取节点的以太坊协议版本...:交易金额,以wei为单位,可选 gas:交易消耗 gas 上限,可选 gasPrice:交易 gas 单价,可选 data:交易携带的字串数据,可选 nonce:整数 nonce 值,可选 消息调用...error) console.log(result); }); //还可以用传入回调函数的方法,立刻开始监听事件 var event = myContractInstance.MyEvent([{
量化交易策略从研究到实盘,需要一套完整的工具链。从策略的理念、研究需要的数据、回测再到实盘,都需要不同的工具。随着量化投资理念的普及,量化开源项目在其中有着功不可没的作用。...对于VN.PY,公众号其实颇有感慨,最初作者用Python对C++语言的CTP交易接口的封装极大的降低了量化策略的开发门槛。并将事件驱动型的回测理念普及给广大量化交易爱好者。...无论从代码的易读性及更新的及时性,都极大的方便的大家进行CTA相关策略的研究。后来又不断的扩充支持的交易接口,丰富功能模块。真正的满足了从数据到研究到交易的全流程功能。...通过AKShare可以快速方便的获取股票期货等历史数据。 当然我们也不能忘了 Tushare,国内最早最被广泛使用的开源数据接口库。正式有了持续维护的开源数据工具,量化研究的艰难旅程才能得以启程!...它是一个基于C++核心模块的,适应全市场全品种交易的,高效率、高可用的量化交易开发框架。 公众号发声 量化投资与机器学习公众号从成立至今,见证了中国量化圈的部分成长与变革。
赎回和回售条款:可转债通常包含赎回和回售条款,为投资者提供额外的保护。关注转股价值和溢价率转股价值是指按照当前的转换比例和股票价格计算出的可转债价值。溢价率则是可转债价格相对于其转股价值的溢价比例。...高频量化交易策略高频量化交易策略是指利用先进的数学模型和计算机技术,在极短的时间内进行大量交易以获取微小利润的策略。...例如,投资者可以分析可转债与其对应股票之间的价格关系,当两者的价格偏离历史平均水平时,通过买入低估资产和卖出高估资产来获取套利收益。...事件驱动策略事件驱动策略是指利用特定事件(如公司并购、重大新闻发布等)对市场价格的影响来进行交易的策略。...在可转债市场中,发行公司的财务报告发布、行业政策变动等事件都可能对可转债价格产生短期影响,为高频交易提供机会。算法交易策略算法交易策略是指使用算法来自动执行交易决策的策略。
虽然两者数据传输的方向都是从服务器流向用户,但操作的发起者是不同的。从“信源”与“用户”的关系来看,信息的流动可分为两种模式,即信息推送与信息拉取模式。 ...2、观察者可以不理会它不关心的变更事件,只需要去获取自己感兴趣的事件即可。 3、观察者可以自行决定获取更新事件的时间。 4、拉的形式可以让订阅者更好地控制各个观察者每次查询更新的访问权限。...反映在OLTP程序系统中,一个交易就是一个任务。如程序系统一次只完成一个交易,在这个交易没有完成前,程序系统不接受其他交易,这就是同步模式。...由于交易在模块之间是按照一定顺序运行的,所以对一个具体交易而言,模块之间任务执行时并不表现为并行运行,但对大批量交易的宏观效果而言,模块之间却是表现为并行运行。...MSF的“请求模式”也支持服务器推送消息,即在一次请求过程中,服务器可以多次推送消息给客户端,“回调”客户端提供的函数,所以这种回调结果通常作为服务器最终响应结果的“中间结果”。
区块链的确定性模型基于这样一个事实:在交易执行时区块链不能执行任何来自外部的逻辑,所有的外部数据只能通过交易进入到系统中。预言机/Oracle就是通过交易为智能合约提供可信数据的服务。...外部数据进入智能合约的唯一方法是将其置入一个交易中,通过向系统发送一个新的交易来触发区块链状态的更新。 试着考虑一下,如果智能合约在执行时可以访问外部的一个API来获取数据,会出现什么情况?...同时我们将创建两个nodejs进程,其中之一就是预言机/Oracle,它的实现逻辑就是周期性地轮询第三方天气API来获取天气数据,然后将天气数据提交给智能合约以便进行历史审计。...上面的代码实现了一个简单服务,它可以从API获取数据,然后再输入智能合约。...同样,contract是一个包含了合约的部署地址和ABI信息的js对象,调用WeatherUpdate并传入一个回调就是我们订阅天气事件的所有代码: const consume = () => {
领取专属 10元无门槛券
手把手带您无忧上云