Corda源码中使用了哪些技术?

目的
  1. 探究Corda中用到了哪些技术和一些基础概念。
  2. 扩展知识面,把技术记录到这,以后也许会用到类似的技术点。
技术点
  1. Corda中的client module中,jackson知识。
    网上资料:
    Jackson Home Page:https://github.com/FasterXML/jackson
    Jackson Wiki:http://wiki.fasterxml.com/JacksonHome
    Jackson doc: https://github.com/FasterXML/jackson-docs
    Jackson Download Page:http://wiki.fasterxml.com/JacksonDownload
    依赖jackson的三个核心类库:
    jackson-core-2.5.3.jar
    jackson-annotations-2.5.3.jar
    jackson-databind-2.5.3.jar
    采用不同的方式解析不同的数据类型。比如from json, to json, formatYaml, xml
    这些工具在进行映射的时候,有自己的规则,比如驼峰,下划线,大小写等方式。Jackson,Fastjson。

  2. Corda中的测试有,集成测试,冒烟测试,单元测试。
    集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
    “冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。
    单元测试:平时写的方法,功能,进行最小单元地测试。

  3. Corda中用到ASM框架
    ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。
    asm是assembly的缩写,是汇编的称号,对于Java而言,asm就是字节码级别的编程。而这里说到的asm是指objectweb asm,是一种.class的代码生成器的开源项目。
    可以对比Java反射技术。
    可以对比Javassist技术。这些都是第三方框架工具,主要提供字节码级别的编程。
    AOP AspecJ是一种高级的字节码编程。
    Javassist 字节码级别编程。对字节码操作为JBoss实现动态AOP框架。Javassist是Jboss的一个子项目,其主要的优点在于简单而且快速。
    ASM 字节码级别编程。

  4. Kryo /kairou/发音
    Kryo是一个快速高效的Java序列化框架,旨在提供快速、高效和易用的API。无论文件、数据库或网络数据Kryo都可以随时完成序列化。Kryo还可以执行自动深拷贝(克隆)、浅拷贝(克隆)。这是对象到对象的直接拷贝,非对象->字节->对象的拷贝。

  5. fiber
    Quasar实现suspendable。实现Flow是可以被中断的,然后当节点重启的时候,flow依然有效果。理解一下,什么是协程?什么又是纤程序?

  6. Guava库
    丰富Java的类库。为什么有这些呢?因为原生Java提供的API会觉得不是那么好,要不要实现一个更好的类库呢?

  7. 日志库
    slf4j库,现代化的日志库。Log4j,logback。 要使用日志库就直接使用slf4j。

  8. rxjava库。
    异步+链式编程,并且采用观察者模式。RxJava:observable streams of envents。

  9. EdDSA
    EdDSA is a public-key digital signature system, instantiated with common parameters as Ed25519 and Ed448. It would be nice to have this implemented in OpenSSL, both at the crypto API level and at the TLS level.

  10. 消息中间件。
    Corda中使用ActiveMQ
    Fabric中使用Kafka
    其他消息中间件,RabbitMQ,RocketMQ

  11. Jopt
    Java的一个命令行解析工具。

  12. jansi
    Java让控制台输出彩色。

  13. jcabi
    jcabi is a collection of small and useful Java components,
    有jcabi-aspects,jcabi-ssh,jcabi-log,jcabi-http,jcabi-email,jcabi-jdbc,
    https://www.jcabi.com/

  14. jolokia
    Java做监控的包。监控的话有,小米运维架构服务监控Open-Falcon.

  15. metrics
    Java度量工具。

  16. jimfs
    内存文件系统(如何来理解内存文件系统)。用于测试的时候,生成一些基本数据信息。

  17. Typesafe
    Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。Typesafe主要是用来读取应用程序中的配置文件信息的一个Java工具。

  18. Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。Typesafe主要是用来读取应用程序中的配置文件信息的一个Java工具。

  19. Capsule
    一个简单、健壮且灵活的JVM应用部署工具。Capsule迎合JVM应用的独特优势和需求,因此这里有理由相信这是最简单、最强大的JVM应用部署方式,不管是用于一个桌面应用、microservice或复杂的Web应用。Capsule不仅适用于Java应用程序,还能应用于所有JVM语言,从Jruby、Jython和Groovy,到Kotlin、Clojure和Scala,再到Frege和OCaml-Java。如果你在写JVM程序,给Capsule一个机会。

  20. Java Atomix:RAFT library
    io.atomix.copycat:copycat-client:1.2.3
    io.atomix.copycat:copycat-server:1.2.3
    io.atomix.catalyst:catalyst-netty:1.1.2

  21. Netty
    Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 是一个基于NIO的客户、服务器端编程框架。

  22. OKhttp
    一个简单的HTTP 库。

  23. bft-smart
    在github上的一个开源项目。

  24. Apache Shiro
    Apache Shiro: authentication, authorization and session management.

  25. qpid:porton
    qpid:porton for AMQP serializable

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值