在FISCO应用中,有些时候需要把上链拆分为两步骤,而不是一次性就完成签名上链,一次性上链对用户保管的私钥是不友好的。
拆分为两步骤:
- 构造待签名的数据返回用户;
- 用户使用自己保管的私钥完成签名;
- 上链签名后的数据。
本文提供了FISCO-3.3.0版本SDK拆分两步骤上链的demo。
more >>在FISCO应用中,有些时候需要把上链拆分为两步骤,而不是一次性就完成签名上链,一次性上链对用户保管的私钥是不友好的。
拆分为两步骤:
本文提供了FISCO-3.3.0版本SDK拆分两步骤上链的demo。
more >>在FISCO场景中,搭建好基础服务之后,部署好智能合约之后,需要使用Java-SDK对接FISCO链上智能合约。
本文描述一种方法,能快速使用Java-SDK对接上FISCO链上智能合约。主要步骤如下:
在FISCO-3.3.0的SDK场景中,有授权等操作,这些操作必须是私钥持有者作为调用者发起交易。
本文提供私钥持有者作为调用者发起交易的关键代码,仅供参考。
需要注意的是,Client配置中的账户只是交易发送账户,不代表签名账户(调用者账户)。合约Java类load加载的才是真正的签名账户、调用者账户。
more >>一般,用户的余额记录只有一行记录,这种场景的用户余额扣减比较容易,直接使用update就可以实现。
但是,在每次购买余额有时间期限的场景中(以及其他需要多行余额记录的场景中),余额就不能是一行记录,而是多行记录。每次购买都需要增加一行记录,这样才能跟踪每一行余额的截止时间。超过截止时间的余额,即使没有使用完,也是无效的。
在这种多行记录的场景中,更新会发生在一行记录,也会发生在两行记录,甚至多行记录。这种场景,update实现是有局限性的。
本文采用 获取排序列表依次扣减 的方式实现多行余额记录的扣减:首选查询能使用的余额记录,条件为不过期+有余额;对余额列表进行排序,这个排序就是扣减的先后顺序,比如是过期时间最早的在最前面;计算余额总和,校验是否足够,足够继续往下;遍历列表,依次扣减余额,扣减完每一行记录,都更新到数据库(优化:变动entity添加到List,扣减结束,batch更新),当需要扣减的总余额减为0时,结束遍历。
余额扣减过程需要最小化、原子化,否则会出现重复消费的错误。使用redisson.lock实现阻塞公平锁。
more >>在开放平台,接口调用一般通过appId和appKey的加签验签实现验证。
本文提供三个类实现:
另外,还提供SM3的加签验签,也是三个类实现。
more >>在线程池处理的环境中,一般的Map和List会发生线程安全问题。
这时候,就需要使用线程安全的Map和List。
Map建议使用ConcurrentHashMap;List建议使用Vector。
很多程序需要后台运行,一般使用nohup命令实现。
nohup后台运行进程,会指定终端日志输出位置,不注意,这个日志文件会越堆越大,导致空间不足。
测试环境建议输出到stdout.log等文件,方便查看日志,优化程序。但日志输出多的话,注意定期删除。
生产环境,建议输出到/dev/null
,使用这个黑洞吸收日志,就不用操心日志占用空间等问题。
同时,还要一份logback.xml的切割日志输出,如有问题,去logback日志查找问题。
nohup java -jar xxx.jar > /dev/null 2>&1 &
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true