Code

28
Feb
VUE单页面网站 历史模式路径刷新404
VUE项目的URL一般都会带有一个#,开启历史模式history mode后就可以去掉。但是这样会有一个问题,当我们部署后,访问一个非主页的路径,比如www.xxxxx.com/login ,会报出404错误。这是因为VUE中的URL都是虚假的,实际是不存在的,自然会报404,所以我们需要调整下该项目文件夹下的URL重写rewrite。下面以Apache为例(因为我没用过Nginx)确定开启了mod_rewrite模式开启方式不详述了,Centos7的模块配置默认在/etc/httpd/conf.modules.d。开启网站文件夹的AllowOverride找到对应网站的配置Virtua...
1,017
2019/02/28
26
Feb
使用php和Github webhook实现自动部署
一般情况下,我们每次在使用Github时,每次push完代码后,都要手动到服务器上git pull一次,如果是vue之类的项目还要npm i和npm build。 当然我们可以写sh脚本来进行部署,但这仍免不了我们要上服务器操作。程序员就是为了懒而生的,我们可以通过Github的webhook功能来实现push完后直接部署的爽快。以下操作均在Centos7上进行为Apache或Nginx配置用户和组这里以Apache为例,已经配置了的请绕道。[scode type="lblue"]合理的配置用户权限,才能规避一系列的权限问题,也能保证服务器的安全。[/scode]首先是创建用户和组,在r...
876
2019/02/26
22
Jan
ElementUI upload组件使用自己接口上传图片
项目用到了ElementUI作为UI框架,在做一些上传图片的功能时也自然用到了upload组件。upload组件自带有异步上传图片的功能的,当然想用自己的接口也是可以的,只需要在before-upload事件里调用自己的接口,并在最后返回false,组件就不会调用自己的上传方法。但是action参数必须要有,任意填或为空都可以。<el-upload class="avatar-uploader" action="" :before-upload="beforePicUpload" :show-file-li...
2,569
2019/01/22
16
Dec
React-Native StackNavigator和TabNavigator路由嵌套设计
官方文档嵌套模型Screen没有画全,但大概是这样的模型。代码写在app.js中统一管理:const LoginStack = createStackNavigator({ Login: Login, Register: Register, }, { initialRouteName: 'Login', }); const ShopStack = createStackNavigator({ Shop: Shop, ShoppingLog: ShoppingLog }, { initialRouteName: 'Shop', }); ...
1,936
2018/12/16
16
Dec
交易所实现自动确认以太坊到账
因业务需求,需要实现交易所自动确认用户的转账。与btc的不同交易所实现自动确认比特币到账上一篇文章有说到确认btc到账的方法,eth与其大致相同,都是获取一段时间内区块上的所有交易,存入数据库。然后历遍新存入的交易数据,如果交易数据中的to能与本站用户的钱包地址匹配,那这比交易就是用户充值的。与btc不同的是获取交易数据的方式不同。btc必须借助第三方api才能实现,eth只需要调用自己钱包服务器的json-rpc就可以了。业务逻辑目前的逻辑是,通过eth_newBlockFilter这个钱包json-rpc,在eth服务器上添加一个BlockFilter。之后每次调用eth_getFi...
1,278
2018/12/16
26
Nov
交易所实现自动确认比特币到账
因业务需求,需要实现交易所自动确认用户的转账。用户转账地址用户的转账地址现阶段是直接json-rpc调用getnewaddress接口生成。之后将改为统一批量生成多个地址存入数据库,新用户注册时自动分配,确保每个人的地址唯一。业务逻辑目前的逻辑是,通过每分钟轮询一次blockchain.info/latestblock这个接口获取最新的区块高度。如果区块高度更新,就通过/block-height/${blockNumber}?format=json这个接口获取该区块下的所有交易数据,存入自己的数据库。然后把所有用户的btc地址历遍,把每个用户的btc地址与最新更新的交易数据匹配,如果发现...
966
2018/11/26
13
Nov
简单发行基于ETH的ERC20代币
目前除了BTC,ETH,EOS三大公链外,其余的虚拟币均是基于公链上发行的代币。其实发行代币很简单,只需要不到100行代码就能发行属于自己的虚拟货币了。智能合约所谓的智能合约,其实就是运行在ETH主网上的代码。Code is Low。在区块链中,代码即是法律,称其为合约,代表这是大家都遵守的一个东西。ERC20这次发行的是基于ETH的ERC20标准的代币。何为ERC20?简单点讲,ERC20可以理解为编程语言的一个接口,我们必须实现这些接口。比如这个接口定义了变量totalSupply,这个变量代表着发行总量。还有诸如transfer,freeze等等,只有按照这些规范写出来的智能合约,...
1,268
2018/11/13
15
Oct
ubuntu搭建EOS环境
eos钱包项目需要对接eos钱包,在这里记录一下搭建的过程。eos钱包和btc,eth不大相同,eos的钱包由三部分组成nodeos,keosd和cleosnodeosnodeos是运行在服务端的区块链节点组件,是EOSIO系统的核心进程,可以通过它运行一个节点。keosdkeosd就是EOSIO的钱包管理客户端,可以被认为是一个存储公钥-私钥的仓库,同时管理钱包信息。nodeos与keosd之间并不存在必然关联,只有在需要签名时它们才会产生联系,例如为交易签名。有一点要注意的是,nodeos已经包含了keosd的完整功能,也就是说在nodeos上也可以管理钱包。cleoscleos是用...
1,396
2018/10/15
14
Oct
TradingView简易教程(三) —— JSApi
本教程仅限于实现最基础功能,更详细精进的功能请绕道(ノ≧∀≦)ノ・‥…━━━★ ピキューン!上一篇教程介绍了如何通过UDF实现数据的传输,这篇教程讲述如何通过JSApi实现websocket数据实时同步。JSApi文档JSApi介绍这是啥? 一套JS方法(以实现指定的公共接口)。我该怎么使用它?: 您应该创建一个JS对象,它将以某种方式接收数据,并响应图表库的请求。UDF是按照官方文档的规则来进行数据传输,但如果使用JSApi的话,你能使用任何你能使用的方式传输数据。得到的数据主要通过一个JS对象来获取并通过回调函数传递给TradingView插件。也就是说,你需要创建一个JS对象,该...
1,959
2018/10/14
08
Oct
HTML Table实现表头固定
通常我们在制作一个可以滚动的表格时,都希望表头能够固定。但table标签并不能实现这个功能,所以我们可以用两个table来实现。代码如下<div class="table"> <div class="table-head"> <table> <colgroup> <col class="trow-1"/> <col class="trow-1&...
612
2018/10/08