java开源区块链jdchain-初始化创世区块

java开源区块链jdchain-初始化创世区块

前言 搭建区块链服务第一步就是初始化创世区块,创建账本。生成dchain初始化创世区块有两种方式,一种是通过官方提供的区块链部署工具,在页面上操作初始化,一种是通过初始化脚本创建。目前,部署工具初始化账本功能有限,只支持btfsmart共识算法的节点初始化,如果要支持mq的共识,只能使用初始化账本的脚本创建, 第一步、生成公私钥 使用部署工具生成公私钥,虽然部署...

阅读全文 »

一天入门java开源区块链-jdchain

一天入门java开源区块链-jdchain

前言 jdchain是京东数科开源的区块链平台,目标是实现一个面向企业应用场景的通用区块链框架系统,能够作为企业级基础设施,为业务创新提供高效、灵活和安全的解决方案。之所以选择jdchain研究是因为jdchain是为数不多的底层也是采用java实现的一个区块链平台 项目地址: https://github.com/blockchain... 文档地址: http://ledger.jd.com/setup.html 部署组件 peer:区块链主节点,参与共识、账本操...

阅读全文 »

一个巧合踩了MapStruct表达式的坑

一个巧合踩了MapStruct表达式的坑

前言 MapStruct是一个代码生成器,它基于约定优于配置的方法大大简化了Java Bean类型之间的映射的实现。生成的映射代码使用简单的方法调用,因此速度快,类型安全且易于理解。 MapStruct的 表达式功能是为了处理特殊对象属性的映射问题,比如DTO中的status属性转换成PO中的status需要进一步的处理,这个时候就需要用到表达式功能了。这里不再赘述关于 MapStruct的使用问题,更多的使用教...

阅读全文 »

J.U.C并发包诞生的那些事儿

前言 J.U.C是java包java.util.concurrent的简写,中文简称并发包,是jdk1.5新增用来编写并发相关的基础api。java从事者一定不陌生,同时,流量时代的今天,并发包也成为了高级开发面试时必问的一块内容,本篇内容主要聊聊J.U.C背后的哪些事儿,然后结合LockSupport和Unsafe探秘下并发包更底层的哪些代码,有可能是系列博文的一个开篇 关于JCP和JSR JCP是Java Community Process的简写,是一种开发和修...

阅读全文 »

java线程池ThreadPoolExecutor八种拒绝策略浅析

前言 谈到java的线程池最熟悉的莫过于ExecutorService接口了,jdk1.5新增的java.util.concurrent包下的这个api,大大的简化了多线程代码的开发。而不论你用FixedThreadPool还是CachedThreadPool其背后实现都是ThreadPoolExecutor。ThreadPoolExecutor是一个典型的缓存池化设计的产物,因为池子有大小,当池子体积不够承载时,就涉及到拒绝策略。JDK中已经预设了4种线程池拒绝策略,下面结合场景详细聊聊这些策...

阅读全文 »

java协程框架quasar和kotlin中的协程

前言 早就听说Go语言开发的服务不用任何架构优化,就可以轻松实现百万级别的qps。这得益于Go语言级别的协程的处理效率。协程不同于线程,线程是操作系统级别的资源,创建线程,调度线程,销毁线程都是重量级别的操作。而且线程的资源有限,在java中大量的不加限制的创建线程非常容易将系统搞垮。接下来要分享的这个开源项目,正是解决了在java中只能使用多线程模型开发高...

阅读全文 »

为什么使用Reactive之反应式编程简介

为什么使用Reactive之反应式编程简介

前言 前一篇分析了Spring WebFlux的设计及实现原理后,反应式编程又来了,Spring WebFlux其底层还是基于Reactive编程模型的,在java领域中,关于 Reactive,有一个框架规范,叫 【Reactive Streams】 ,在java9的ava.util.concurrent.Flow包中已经实现了这个规范。其他的优秀实现还有Reactor和Rxjava。在Spring WebFlux中依赖的就是Reactor。虽然你可能没用过Reactive开发过应用,但是或多会少你接触过异步Servlet,同...

阅读全文 »