比特派官网|mina

作者: 比特派官网
2024-03-07 19:55:12

java之网络通信框架mina_java mina-CSDN博客

>

java之网络通信框架mina_java mina-CSDN博客

java之网络通信框架mina

最新推荐文章于 2023-09-02 18:25:53 发布

健康平安的活着

最新推荐文章于 2023-09-02 18:25:53 发布

阅读量4.3k

收藏

22

点赞数

4

分类专栏:

mina

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/u011066470/article/details/119257752

版权

mina

专栏收录该内容

13 篇文章

0 订阅

订阅专栏

一 mina

1.1 mina作用概述

mina是一个基于java nio的网络通信框架。主要屏蔽了网络通信的一些细节,对Socket进行封装,并且是NIO的一个实现架构,可以帮助我们快速的开发网络通信,常用于游戏的开发、中间件服务端的程序中。

Apache的Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件驱动的异步API,使Java NIO在各种传输协议(如TCP/IP,UDP/IP协议等)下快速高效开发。

        Mina最主要的工作就是把底层传输的字节码转换为Java对象,提供给应用程序;或者把应用程序返回的结果转换为字节码,交给底层传输。

总结:

1.默认使用的是JAVA NIO 作为底层支持)操作的编程模型

2.主要屏蔽了网络通信的细节,对socket进行封装,并且是nio的一个实现框架,可以帮助我们快速的进行网络通信、游戏、中间价服务的开发。

3.Mina 的API 将真正的网络通信与我们的应用程序隔离开来,你只需要关心你要发送、接收的数据以及你的业务逻辑即可。

1.2 mina组件的作用

1.IOService:最底层的是IOService,负责具体的IO相关工作。用于描述我们 的客户端和服务端接口,(IoAccept、IoConnector是子类),分别用于服务端和客户端使用;这一层的典型代表有IOSocketAcceptor和 IOSocketChannel。每当有数据到达时,IOService会先调用底层IO接口读取数据,封装成IoBuffer,之后以事件的形式通知上层代码,从而将Java NIO的同步IO接口转化成了异步IO。所以从下图上看,进来的low-level IO经过IOService层后变成IO Event。

2.IOprocessor:是多线程的环境来处理我们的连接请求;IoProcessor 负责调用注册在 IoService 上的过滤器,并在过滤器链之后调用IoHandler。

3.IOFilter: 这个接口定义一组拦截器,,其中数据的encode 与decode是最为重要的、也是你在使用Mina 时最主要关注的地方。

4.IOHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。需要有开发者自己来实现这个接口。

5.IOsession: 是对底层连接(服务器与客户端的特定连接,该连接由服务器地址、端口以及客户端地址、端口来决定)的封装。

1.3 mina的工作流程

1.Acceptor与Connector线程

    在

服务器端,bind一个端口后,会创建一个Acceptor线程来 负责监听工作

。这个线程的工作只有一个:调用Java NIO接口在该端口上 select connect事件,获取新建的连接后,封装成IoSession,交由后面的 Processor线程处理。

    在客户端,也有一个类似的,

叫Connector的线程与之相对应

。这两类线程的数量只有1个,外界无法控制这两类线程的数量。

2.

Processor

线程主要负责具体的IO读写操作和执行后面的IoFilterChain和IoHandler逻

辑。Processor线

程的数量N默认是CPU数量+1

1.4 mina的工作流程

1.服务端流程:

 1、

通过SocketAcceptor 同客户端建立连接;

 2、

连接建立之后 I/O的读写交给了I/O Processor线程,I/O Processor是多线程的;

 3、

通过I/O Processor 读取的数据经过IoFilterChain里所有配置的IoFilter,IoFilter进行消息的过滤,格式的转换,在这个层面可以制定一些自定义的协议;

 4、

最后IoFilter将数据交给 Handler 进行业务处理,完成了整个读取的过程;

 写入过程也是类似,只是刚好倒过来,

通过IoSession.write 写出数据,然后Handler进行写入的业务处理,处理完成后交给IoFilterChain,进行消息过滤 和协议的转换,最后通过 I/O Processor 将数据写出到 socket 通道。

2.客户端流程:

 1、客户端首先创

建一个IOConnector 用来和服务端通信,顾名思义这就是建立的一个连接对象;   2、 在这个连接上创建一个session, 客

户端中的业务方法可以向session中写入数据,数据经过Filter Chain的过滤后会发送给服务端;

3、

从服务端发回的数据也会首先经过Filter Chain的过滤,然后交给IOHandler做进一步的处理

 

 

1.5 IOService接口

1.5.1 IOService的作用 

用于描述我们的客户端和服务端的接口,其子类是Connector和Acceptor,Connector描述我们的客户端,Acceptor描述服务端。

Connector描述我们的客户端,Acceptor描述服务端 IOprocessor多线程的环境来处理我们的连接请求流程。 IoFilter提供数据的过滤工作,包括编解码、日志等信息的过滤。 Handler业务对象,自定义handler需要实现IOHanlerAcceptor。

1.5.2 客户端与服务端的作用 

I/O Service层  I/O Filter Chain层  I/O Handler层

服务器端需要创建服务器端Socket,监听指定端口并等待请求的带来。

客户端需要连接到服务器端指定的监听端口,使用网络服务。

IoService

抽象的服务(功能)有如下几个:

管理IoSession:创建和删除IoSession,探测会话Idle状态

Filter Chain管理:处理过滤器链,允许用户修改过滤器链执行顺序

Handler的调用:当指定事件发生的时候,负责调用Handler进行处理

统计数据管理:更新消息发生的数量,以及传输的字节数,等等

监听器管理:管理用户设置的

Listener

通信管理:管理端到端数据传输

1.5.3 IOService的子类接口

服务端:

客户端:

1.6 IOprocessor

processor是以nio为基础实现的以多线程的方式来完成读写操作,Java NIO就是基于Reactor模式实现,属于同步非阻塞IO模式 。

作用:

是为filter读写原始数据的多线程环境

,如果mina不去实现,我们自己来实现nio的话,需要字节写一个非阻塞读写的多线程环境。

配置processor的多线程环境

通过NioSocketAcceptor(int processorCount)构造函数可以指定多线程处理器的个数。

通过NioSocketConnector()构造函数也可以指定多线程的个数。

  1.7 IOFilter接口

1.7.1 filter的作用

1.I/O Filter Chain层是介于I/O Service层与I/O Handler层之间的一层,

2.IOFilter的作用

:对应用程序和网络这块的传输,就是二进制数据和对象直接的相互转化

,有相应的解码和编码器。这也是我们过滤器的一种。

1.7.2 过滤器

 

 

1.7.3 自定义过滤器

自定义过滤器类: public class MyFilter extends IoFilterAdapter

构造一个ProtocolCodecFilter实例,需要实现一个ProtocolCodecFactory实例,一个ProtocolCodecFactory包含了对消息进行编解码(Codec)的逻辑,这样实 现的好处是将编解码的逻辑和IoFilter解耦合。

设置自定义过滤器

acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));

1.7.4 常见过滤器

 1.7.5 过滤器的流程

 

 1.8 IOHandler接口

这个接口是你编写业务逻辑的地方,读取数据、发送数据基本都在这个接口总完成,这个实例是绑定到IoService 上的,有且只有一个实例(没有给一个IoService 注入一个IoHandler 实例会抛出异常)。

根据Mina的架构,我们知道,在客户端主动发起I/O操作请求以后,会等待Mina触发相应的事件,在经过一组IoFilter之后,

在 IoFilter链的最后一个IoFilter被调用 将要结束的时候,会调用我们注册的IoHandler实现,经过处理来满足实际业务逻辑需要。

 1.9 IOSession接口

IOSession:描述的是客户端和服务端的连接,常用于接受和发送数据。

初始化好之后加入到processor负责的一个队列中。processor线程会把队列中的session对应的通道都注册到它自己的selector上,然后这个selector轮询这些通道是否准备就绪,一旦准备就绪就调用对应方法进行处理(read or flushNow)

 1.9 长链接与短连接

   长连接:通信双方长期的保持一个连接状态不断开,一旦建立连接后,就不断开,除非发生异常,比较消耗IO资源。

    短连接:通信双方不是保持一个长期的连接状态,比如Http协议,当客户端发起http请求,服务器处理http请求,当服务器处理完成后,返回客户端数据后就断开链接。

默认是代开长连接的,处于监听会话状态,可以改成短连接。如下图  服务端设置

二 ioservice接口详解

2.1  作用

    实现了对网络通信的客户端和服务端之间的抽象,子接口IOConnector用于描述客户端,子接口IOAcceptor用于描述服务端。

    作用:IOService可以管理我们网络通信的客户端和服务端,并且可以管理连接双方的会话session,同样可以添加过滤器。

常用接口为:IoService,IoAcceptor,IoConnector

常用类为:NioSocketAcceptor,NioSocketConnector

 

分析:

IoService接口声明了服务端的共有属性和行为; IoAcceptor接口继承了IoService接口,并添加了服务端特有的接口属性及方法,比如bind()方法,成为典型的服务端接口; IoConnector接口同样继承了IoService接口,并添加了客户端特有的接口属性及方法,比如connect()方法,成为典型的客户端接口; AbstractIoService实现了IoService中管理服务的方法,比如getFilterChainBuilder方法---获得过滤器链; AbstractIoService抽象类继承了AbstractIoService抽象类并实现了IoAcceptor接口,成为了拥有管理服务端实现功能的服务端类;我们常用的NioSocketAcceptor就是它的子类; AbstractIoConnector抽象类继承了AbstractIoService抽象类并实现了IoConnector接口,成为了拥有管理客户端实现功能的客户端类;我们常用的NioSocketConnector就是它的子类;

 2.2  api

1.ioservice

2.ioconector

 3.ioAcceptor

4.NIOsocketAcceptor 

 5.NIOsocketConnector

优惠劵

健康平安的活着

关注

关注

4

点赞

22

收藏

觉得还不错?

一键收藏

知道了

0

评论

java之网络通信框架mina

一 mina1.1 mina作用概述mina是一个基于java nio的网络通信框架。主要屏蔽了网络通信的一些细节,对Socket进行封装,并且是NIO的一个实现架构,可以帮助我们快速的开发网络通信,常用于游戏的开发、中间件服务端的程序中。 Mina最主要的工作就是把底层传输的字节码转换为Java对象,提供给应用程序;或者把应用程序返回的结果转换为字节码,交给底层传输。1.2 mina传输数据的类型...

复制链接

扫一扫

专栏目录

JAVA 通信框架MINA(包含心跳)

02-11

Apache MINA 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 可以作为开发网络应用程序的一个良好基础。

Apache Mina Server 是一个网络通信应用框架

12-09

Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。

参与评论

您还未登录,请先

登录

后发表或查看评论

8、Java网络编程——MINA框架

weixin_53330986的博客

12-03

1006

8、MINA框架

1、什么是MINA? 一句话就是:一个简洁易用的基于 TCP/IP 通信的 JAVA框架。

2、下载地址:http://mina.apache.org/downloads-mina.html

3、一个简单的网络程序需要的最少jar包:mina-core-2.0.16.jar、slf4j-api-1.7.21.jar

4、开发一个 Mina 应用,简单的说,就是创建连接,设定过滤规则,编写自己的消息处理器

5、示例:

//创建一个非阻塞的Server端Socket,用NIO

SocketAc

Mina socket连接器(NioSocketConnector)

Donald_Draper的专栏

06-12

2847

最新天猫Java研发团队四面:并发压测+Mina+事务+集群+秒杀架构等

the shy

05-05

154

一面总体上还是围绕Java基础、JVM、并发编程、数据结构等展开。一面结束后很快安排了二面,相对一面,二面和三面从项目入手多数问的是数据库,缓存,分布式架构等问题且更深入,问题比较刨根问底,更加注重对一些技术细节的理解和把握。比如数据库操作,面试官会详细的问你数据库插入和删除一条数据的过程在底层是如何执行的,项目里配置了读写分离,也会比较深入的就实现方法和底层逻辑展开讨论。HR面很愉快,问了一些薪资和职业规划上的问题!

java mina框架全套

08-31

java mina框架

Java如何使用Apache MINA实现网络通信

xiaocxyczh的博客

07-11

574

Java如何使用Apache MINA实现网络通信

Mina网络通信框架

qq_43842093的博客

09-02

954

Mina框架是 Apache 开源的一款网络通信应用框架,是一款Java NIO通信框架。

Mina入门

一切有为法,如梦亦如幻,如露亦如电,应作如是观。

10-10

630

自定义一个Mina的客户端,然后向上一节的Mina服务端发送数据。Mina客户端类:MinaClient.java/*** Mina客户端* * 用例:实现MinaServer的telnet程序**//*** IO会话连接器*//*** IO连接会话*//*** 与Mina服务端建立连接** @return 连接结果*/try {//1-NioSocketAcceptor( IO连接器)//2-设置超时时间。......

Java中的MINA框架

weixin_45765183的博客

04-15

1821

Server端

package com.chen.mina;

import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;

import org.apache.mina.filter.codec.ProtocolCodecFilter;

import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;

impo...

Apache Mina网络通信应用框架实例

05-07

Apache Mina Server 是一个网络通信应用框架

基于 TCP/IP、UDP/IP协议栈的通信框架

支持串口和虚拟机内部的管道等传输方式

Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用

Mina 提供了事件驱动、异步操作(JAVA NIO 作为底层支持)的编程模型

本实例演示了编码、解码、支持json数据发送和接收,数据格式:{命令长度4字节,命令,数据长度4字节,数据}

TCP通讯框架资源包,mina 通讯框架

07-11

TCP通讯框架资源包,mina 通讯框架,TCP通讯框架,满足常用的TCP网络开发需求。亲测无任何问题。

mina高性能Java网络框架.rar

07-07

mina是一个基于java nio的网络通信框架。主要屏蔽了网络通信的一些细节,对Socket进行封装,并且是NIO的一个实现架构,可以帮助我们快速的开发网络通信,常用于游戏的开发、中间件服务端的程序中。

Apache的Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件驱动的异步API,使Java NIO在各种传输协议(如TCP/IP,UDP/IP协议等)下快速高效开发。

Mina最主要的工作就是把底层传输的字节码转换为Java对象,提供给应用程序;或者把应用程序返回的结果转换为字节码,交给底层传输。

总结:

1.默认使用的是JAVA NIO 作为底层支持)操作的编程模型

2.主要屏蔽了网络通信的细节,对socket进行封装,并且是nio的一个实现框架,可以帮助我们快速的进行网络通信、游戏、中间价服务的开发。

3.Mina 的API 将真正的网络通信与我们的应用程序隔离开来,你只需要关心你要发送、接收的数据

springboot整合mina

健康平安的活着的专栏

08-18

1055

一 配置操作

1.1 config

package com.dky.mina.config;

import com.dky.mina.handler.TimeServerHandler;

import org.apache.mina.core.service.IoAcceptor;

import org.apache.mina.core.service.IoHandler;

import org.apache.mina.core.session.IdleStatus;

import org.apa.

java中NIO的selector

健康平安的活着的专栏

08-10

763

一 selector

Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件,一个Selector可以同时轮询多个Channel,只需要一个线程负责Selector的轮询,就可以接入成千上万的客户端。

二selector的操作

1.selector的创建

Selector的创建

通过调用Selector.open()方法创建一个Selector,如下:

Selector selector = Selector.open..

mina之自定义编码和自定义解码

健康平安的活着的专栏

08-10

639

一 协议

1.1 协议

比如QQ聊天工具,当输入完一个消息后,点击发送按钮向对方发送时,此时系统就会在在你的消息后添加一个文本换行符,接收方看到这个文本换行符就认为这是一个完整的消息,解析成字符串显示出来。而这个规则,就称之为协议!

1.2 几种定长的协议法

定长消息法:这种方式是使用长度固定的数据发送,一般适用于指令发送。譬如:数据发送端规定发送的数据都是双字节,AA 表示启动、BB 表示关闭等等。字符定界法:这种方式是使用特殊字符作为数据的结束符,一般适用于简单数据的发送。譬如:在消息的结尾自.

mina的iobuffer使用

健康平安的活着的专栏

08-05

536

一 iobuffer的常用方法

Java中nio与io的区别与联系

健康平安的活着的专栏

08-10

416

一 区别于联系

ava NIO和IO之间的主要差别:

IO NIO

面向流 面向缓冲

阻塞IO 非阻塞IO

无 选择器

1.面向流与面向缓冲

JavaNIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Ja...

java网络编程框架

最新发布

12-31

Java网络编程框架是用于在Java应用程序中实现网络通信的工具和库。以下是几个常用的Java网络编程框架:

1. Apache MINA:Apache MINA是一个高性能、可扩展的网络应用程序框架,它提供了一组抽象和实用工具,用于简化网络编程任务。

2. Netty:Netty是一个异步事件驱动的网络应用程序框架,它提供了高性能的网络传输和编解码功能,适用于开发高性能、可扩展的网络服务器和客户端。

3. Spring Framework:Spring Framework是一个全面的企业级应用程序开发框架,其中包含了许多模块和功能,其中包括对网络编程的支持。

4. Grizzly:Grizzly是一个基于Java NIO的框架,用于构建高性能的网络应用程序。它提供了一组易于使用的API,用于处理网络通信和协议。

5. Jetty:Jetty是一个轻量级的Java Web服务器和Servlet容器,它也可以用作网络编程框架。它提供了高性能的HTTP服务器和客户端,以及WebSocket和HTTP/2的支持。

6. JBoss Netty:JBoss Netty是一个基于Java NIO的框架,用于构建高性能、可扩展的网络应用程序。它提供了一组强大的API,用于处理网络通信和协议。

这些框架都提供了丰富的功能和工具,可以帮助开发人员更轻松地实现各种网络编程任务。具体选择哪个框架取决于项目需求和个人偏好。

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

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

健康平安的活着

CSDN认证博客专家

CSDN认证企业博客

码龄11年

暂无认证

1351

原创

1833

周排名

399

总排名

250万+

访问

等级

2万+

积分

3万+

粉丝

1234

获赞

389

评论

4610

收藏

私信

关注

热门文章

linux shell 命令 echo中输出变量

61442

mysql的备份表的几种方法

58805

在idea中配置 gitignore忽略文件(一)

45451

maven的5种打包方式,终有一款适合你1

43363

Es中查询数据存在某个字段或者数据的不存在某个字段(must_not,must的使用)

39880

分类专栏

spring cloud

42篇

java基础知识

2篇

spring

35篇

分布式

12篇

redis

25篇

架构师

2篇

任务调度

15篇

springcloud3

55篇

springboot源码

1篇

iotdb

10篇

职场

2篇

实战项目

18篇

shiro安全框架

27篇

vue

8篇

spring security oauth 分布式认证授权

24篇

spring security

9篇

k8s

2篇

nginx

31篇

sso单点登录

4篇

docker

14篇

mybaits

31篇

RocketMq

5篇

itext pdf

1篇

wps-办公软件

10篇

flink

4篇

jwt

2篇

spring mvc

44篇

mqtt

6篇

网络IO编程模型-netty

16篇

网络io编程模型

13篇

mina

13篇

websocket

3篇

java web

20篇

jdk

1篇

springcloud-2

6篇

架构

2篇

influxdb

8篇

webservice

11篇

数据分析

44篇

spark

5篇

机器学习

16篇

运筹学

2篇

scala分类

3篇

java

184篇

大数据

73篇

flume

7篇

oracle数据库

8篇

jquery

9篇

javascript

8篇

solr

11篇

kafka

33篇

windows

5篇

maven

25篇

excel

powerdesigner

5篇

elasticsearch

43篇

mysql数据库

121篇

log4j

3篇

插件

linux常用命令

64篇

es

2篇

中文分词

1篇

git

29篇

jboss

2篇

传输工具

10篇

tomcat

6篇

svn

6篇

项目介绍

1篇

设计模式

1篇

java 设计模式

5篇

其它

6篇

css

6篇

情感文摘

9篇

算法

13篇

采集爬虫

1篇

idea

30篇

ide开发工具

vmware

10篇

mogodb

1篇

高并发多线程

27篇

python

52篇

springboot

152篇

zookeeper

7篇

坑笔记

3篇

xmind

1篇

java8

16篇

hive

8篇

hadoop

2篇

hbase

10篇

最新评论

java中Timer和Timertask的关系

CSDN-Ada助手:

Java 技能树或许可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java

多线程中线程池常见7个参数的详解以及执行流程

@K@:

优先核心线程、阻塞队列次之,最后非核心线程。

springsecurity+oauth2.0 分布式认证授权案例-uaa服务配置2

稀里糊涂掉:

求高赞解决方案

mysql的常见的外键约束

三尺微命 一介书生:

很有帮助,十分感谢

java中值传递和引用传递案例剖析

小麟有点小靈:

懂了,实际上getList()这个方法里的dataList此时仅仅只是地址发生了变化,并没有影响实际的dataList,吧getList()方法里的dataList换成别的名字会更好理解

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

高可用架构实现流量治理的策略

多线程JUC 第2季 LockSupport的等待唤醒机制

多线程JUC 第2季 中断线程

2024年17篇

2023年196篇

2022年234篇

2021年294篇

2020年218篇

2019年222篇

2018年25篇

2017年44篇

2016年83篇

2015年29篇

目录

目录

分类专栏

spring cloud

42篇

java基础知识

2篇

spring

35篇

分布式

12篇

redis

25篇

架构师

2篇

任务调度

15篇

springcloud3

55篇

springboot源码

1篇

iotdb

10篇

职场

2篇

实战项目

18篇

shiro安全框架

27篇

vue

8篇

spring security oauth 分布式认证授权

24篇

spring security

9篇

k8s

2篇

nginx

31篇

sso单点登录

4篇

docker

14篇

mybaits

31篇

RocketMq

5篇

itext pdf

1篇

wps-办公软件

10篇

flink

4篇

jwt

2篇

spring mvc

44篇

mqtt

6篇

网络IO编程模型-netty

16篇

网络io编程模型

13篇

mina

13篇

websocket

3篇

java web

20篇

jdk

1篇

springcloud-2

6篇

架构

2篇

influxdb

8篇

webservice

11篇

数据分析

44篇

spark

5篇

机器学习

16篇

运筹学

2篇

scala分类

3篇

java

184篇

大数据

73篇

flume

7篇

oracle数据库

8篇

jquery

9篇

javascript

8篇

solr

11篇

kafka

33篇

windows

5篇

maven

25篇

excel

powerdesigner

5篇

elasticsearch

43篇

mysql数据库

121篇

log4j

3篇

插件

linux常用命令

64篇

es

2篇

中文分词

1篇

git

29篇

jboss

2篇

传输工具

10篇

tomcat

6篇

svn

6篇

项目介绍

1篇

设计模式

1篇

java 设计模式

5篇

其它

6篇

css

6篇

情感文摘

9篇

算法

13篇

采集爬虫

1篇

idea

30篇

ide开发工具

vmware

10篇

mogodb

1篇

高并发多线程

27篇

python

52篇

springboot

152篇

zookeeper

7篇

坑笔记

3篇

xmind

1篇

java8

16篇

hive

8篇

hadoop

2篇

hbase

10篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

MINA Home — Apache MINA

MINA Home — Apache MINA

Apache MINA Project

 | 

MINA

 | 

AsyncWeb

 | 

FtpServer

 | 

SSHD

 | 

Vysper

Social Networks

Apache MINA Mastodon

Latest Downloads

Mina 2.0.25

Mina 2.1.8

Mina 2.2.3

Mina old versions

Documentation

Base documentation

User guide

2.2 vs 2.1

2.1 vs 2.0

Features

Road Map

Quick Start Guide

FAQ

Resources

Mailing lists & IRC

Issue tracking

Sources

API Javadoc 2.0.25

API Javadoc 2.1.8

API Javadoc 2.2.3

API xref 2.0.25

API xref 2.1.8

API xref 2.2.3

Performances

Testimonials

Conferences

Developers Guide

Related Projects

Statistics

Community

Contributing

Team

Special Thanks

Security

About Apache

Apache main site

License

Sponsorship program

Thanks

Upcoming

No event

Welcome to Apache MINA

Overview

Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract · event-driven · asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

Apache MINA is often called:

NIO framework · library,

client · server framework · library, or

a networking · socket library.

However, it’s much more than that. Please take a look around the list of the features that enable rapid network application development, and what people says about MINA.

Please grab yourself a 2.0.x download or a 2.1.x download, try our Quick Start Guide, surf our FAQ or start join us on our community

News

MINA 2.2.3, 2.1.8, 2.0.25 released posted on September, 12, 2023

The MINA project is pleased to announce the MINA 2.2.3, 2.1.8 and 2.0.25 release.

Changes

Those versions are fixing some Datagram session issue:

DIRMINA-996 IoSessionRecycler RemoteAddress Collision

DIRMINA-1172 Multiple DatagramAcceptors and the creation of a session object

MINA 2.2.2, 2.1.7, 2.0.24 released posted on June, 05, 2023

The MINA project is pleased to announce the MINA 2.2.2, 2.1.7 and 2.0.24 release.

Changes

Those versions are fixing some SSL/TLS issues and bring some added features:

DIRMINA-1122 support for endpoint identification algorithm (thanks to Marcin L)

DIRMINA-1157 A fix for a sporadic SSL/TLS connection establishement for version 2.0.X and 2.1.X (thanks to Steffen Liersch)

DIRMINA-1169 A fix in the Acceptor for Java 11 and upper (thanks to Thomas Wolf)

MINA 2.2.1 released posted on july, 24, 2022

The MINA project is pleased to announce the MINA 2.2.1 release.

Changes

This new version is just a fix in some OSGi export declaration that was done wrong in the previous release.

MINA 2.2.0 released posted on july, 19, 2022

The MINA project is pleased to announce the MINA 2.2.0 release.

Changes

This new version comes with complete rewrite of the SSL/TLS layer. The previous implementation had some flaws that were difficult to fix or workaround, and with the arrival of TLS-1.3, it was the opportunity to review and recode this part, which is the main change.

For any information about the API modifications and the impact on existing application, please read the 2.2 vs 2.1 page.

MINA 2.1.6 & MINA 2.0.23 released posted on Februray, 18, 2022

The MINA project is pleased to announce two new releases, MINA 2.1.6 and MINA 2.0.23.

MINA 2.1.6 fixes

Here is the list of fixed issues :

DIRMINA-1152 IoServiceStatistics introduces huge latencies

DIRMINA-1156 Inconsistent worker / idleWorker in OrderedThreadPoolExecutor

It also contain some minor fixes (ignored tests being fixed, a minor

infinite loop fixed in the Buffer toString() method if used in some

corner case, etc)

For any information about the API modifications and the impact on existing application, please read the 2.1 vs 2.0 page.

MINA 2.0.23

This is a maintenance release for MINA 2.0.

It contains many backported issues from the 2.1 and 2.2 branches.

MINA 2.1.5 & MINA 2.0.22 released posted on October, 29, 2021

The MINA project is pleased to announce two new releases, MINA 2.1.5 and MINA 2.0.22.

These are fixing a critical issue, CVE-2021-41973

CVE-2021-41973: ‘Apache MINA HTTP listener DoS’

We urge anyone using any previous MINA version to migrate to one of those two new versions

MINA 2.1.4 released posted on August, 24, 2020

The MINA project is pleased to announce a new release, MINA 2.1.4. This is a bug fix release. Here are the fixed issues :

Bugs

DIRMINA-966 NIO Datagram messages can get duplicated when unable to be sent by the underlying DatagramChannel

DIRMINA-1014 SocketAcceptor doesn’t unbind correctly

DIRMINA-1115 Filter ProfilerTimerFilter ArithmeticException

DIRMINA-1123 Receive buffer size is never set for NIO acceptor

DIRMINA-1126 filterWrite in ProtocolCodecFilter can send corrupted writeRequest message to the next filter

DIRMINA-1064 Implement cipher suites preference flag introduced in JDK 8

DIRMINA-1105 SSLHandler buffer handling

For any information about the API modifications and the impact on existing application, please read the 2.1 vs 2.0 page.

MINA 2.1.3 released posted on June, 2, 2019

The MINA project is pleased to announce a new release, MINA 2.1.3. This is a bug fix release: it fixes a 100% CPU usage in some corner case. Here are the fixed issues :

DIRMINA-1095 Seems like the management f UDP sessions is really unneficient

DIRMINA-1107 SslHandler flushScheduledEvents race condition, redux

DIRMINA-1111 100% CPU (epoll bug) on 2.1.x, Linux only

DIRMINA-1104 IoBufferHexDumper.getHexdump(IoBuffer in, int lengthLimit) does not truncate the output

For any information about the API modifications and the impact on existing application, please read the 2.1 vs 2.0 page.

MINA 2.1.2 released posted on April, 20, 2019

The MINA project is pleased to announce a new release, MINA 2.1.2. This is a bug fix release: it fixes an issue for applications using SSL/TLS, which will stall waiting on a WriteFuture because it does not get signaled when the message has been fully sent.

For any information about the API modifications and the impact on existing application, please read the 2.1 vs 2.0 page.

MINA 2.1.1 & MINA 2.0.21 released posted on April, 14, 2019

The MINA project is pleased to announce two new releases, MINA 2.1.1 and MINA 2.0.21.

These are fixing a critical issue, CVE-2019-0231

CVE-2019-0231: ‘Handling of the close_notify SSL/TLS message does not lead to a connection closure, leading the server to retain the socket opened and to have the client potentially receive clear-text messages which were supposed to be encrypted.’

MINA 2.1.1 also fixes the CompressionFilter usage, by simplifying the way we proceed with writes. A side effect is that it should be slightly faster to write data from an application. (This fix is not included in 2.0.21)

We urge anyone using any previous MINA version to migrate to one of those two new versions

MINA 2.1.0 released posted on March, 14, 2019

The MINA project is pleased to announce a new release, MINA 2.1.0. This is a evolution over the

2.0.x branch, with some API modifications that makes it incompatible.

That means some effort will be required from applications to be able to use Apache MINA

2.1.0 as a replacement for Apache MINA 2.0.20.

Otherwise, every fix applied in Apache MINA 2.0.20 has been ported to this version, so one can still keep going with Apache MINA 2.0.20 which will be maintained for the coming months.

For any information about the API modifications and the impact on existing application, please read the 2.1 vs 2.0 page.

MINA 2.0.20 released posted on February, 24, 2019

The MINA project is pleased to announce a new release, MINA 2.0.20, fixing some API issues:

DIRMINA-1092 Removed a spurious printstacktrace

DIRMINA-1098 handshakeStatus variable has been wrongly made global

DIRMINA-1088 the OrderedThreadPool implementation has been made Java 10 compatible

We urge you to switch to this version if you were using MINA 2.0.19 or any older version.

MINA 2.0.19 released posted on June, 11, 2018

The MINA project is pleased to announce a new release, MINA 2.0.19, fixing some API regression:

the ‘event’ message has been removed from the IoHandler interface

the SESSION_SECURED/SESSION_UNSECURED message are back

Those changes have been introduced in MINA 2.0.18 by mistake, and break applications that were

working with MINA 2.0.17.

They will be reintroduced in MINA 2.1.0

We urge you to switch to this version if you were using MINA 2.0.17 or any older version.

MINA 2.0.18 released posted on June, 1, 2018

The MINA project is pleased to announce a new bug fix release, MINA 2.0.18.

There is some important addition in this version, the IoHandler interface now exposes a

new method :

void event(IoSession session, FilterEvent event) throws Exception;

This can be used by any filter to generate a specific event (which will

be handled on demand by the application).

Currently, the only added event is defined in SslEvent, and it tells if

the session has been secured (ie the Handshake has completed) or isn’t

anymore.

It changes one thing in your application: if you were implementing

IoHandler, you have to add this method. You may also extends

IoHandlerAdapter which has a void implementation of this event() method.

The few fixes bugs/added features are:

Added a flag to tell the Handshake to start immediately or not

The IoBufferHexDumper implementation now does not modify the IoBuffer

position

Some missing synchronization have been added in teh SslFilter

The suspendRead call is handled for Datagrams, instead of throwing an

exception

We urge you to switch to this version if you were using MINA 2.0.17 or any older version.

MINA 2.0.17 released posted on March, 15, 2018

The MINA project is pleased to announce a new bug fix release, MINA 2.0.17. It fixes many issues, and adds the missing Javadoc.

Here are the fixed issues :

Bugs :

DIRMINA-844 - Http Proxy Authentication failed to complete (see description for exact point of failure)

DIRMINA-1002 - Mina IoHandlerEvents missing inputClosed enum item.

DIRMINA-1051 - The MD5withRSA cipher is not anymore supported by Java 8, and our tests certificates have been generated with it.

DIRMINA-1052 - Fix the mvn-site command

DIRMINA-1056 - IllegalArgumentException when setting max and minReadBufferSize > 65536 (default)

DIRMINA-1057 - AbstractIoSession getScheduledWriteMessages always -negative?

DIRMINA-1059 - NioProcessor’s selector is synchronized but accessed outside

DIRMINA-1060 - Handle the spinning selectors in Socket/Datagram Acceptor and Connector

DIRMINA-1072 - SslFilter does not account for SSLEngine runtime exceptions

DIRMINA-1073 - NioSocketSession#isSecured does not comply with interface contract

DIRMINA-1076 - Leaking NioProcessors/NioSocketConnectors hanging in call to dispose

DIRMINA-1077 - Threads hanging in dispose() on SSLHandshakeException

Improvement :

DIRMINA-1061 - When AbstractPollingIoProcessor read nothing, free the temporary buffer should be better

Task :

DIRMINA-1058 - Add the missing Javadoc

We urge you to switch to this version if you were using MINA 2.0.16 or any older version.

MINA 2.0.16 released posted on October, 31, 2016

The MINA project is pleased to announce a new bug fix release, MINA 2.0.16. It fixes a critical SSL issue, and a regression introduced in 2.0.14.

Here are the fixed issues :

Bugs :

DIRMINA-1043 NullPointerException after upgrade to mina 2.0.14

DIRMINA-1044 Non-Secure (no TLS/SSL) based client could successfully send message to secure Mina endpoint after second attempt

We urge you to switch to this version if you were using MINA 2.0.15 or any older version.

MINA 2.0.15 released posted on September, 27, 2016

The MINA project is pleased to announce a new bug fix release, MINA 2.0.15. It fixes a hang, a NPE and a few other minor issues.

Here are the fixed issues :

Bugs :

DIRMINA-1041 WriteFuture.await() hangs when the connection is closed remotely before await is invoked

DIRMINA-1047 NullPointerException in AbstractIoSession.destroy()

DIRMINA-1049 Error in mina-statemachine manifest prevents using it in Apache Karaf

We urge you to switch to this version if you were using MINA 2.0.14 or any older version.

MINA 2.0.14 released posted on August, 30, 2016

The MINA project is pleased to announce a new bug fix release, MINA 2.0.14. It fixes many issues, some of them being a real burden for SSHD DIRMINA-1021). Some patches were also applied (thanks to Maria Petridan).

Here are the fixed issues :

Bugs :

DIRMINA-760 Client fails to detect disconnection

DIRMINA-976 ScheduledWriteBytes Increases after Exception on Writing

DIRMINA-1021 MINA-CORE does not remove sessions if exceptions occur while closing

DIRMINA-1025 A call to session.closed(true) may still flush messages.

DIRMINA-1028 The supported ciphers configuration might not be used

DIRMINA-1029 The sent buffer is reset to its original position when using the SSL Filter after a session.write()

DIRMINA-1037 Throw exception in NioProcessor.write if the session is closing

DIRMINA-1039 Response messages queue up on the server side waiting to be written to socket, while the server continues to read more request messages, causing out of heap memory

DIRMINA-1042 Epoll spinning causes memory leak

Task :

DIRMINA-986 Update the web site to reflect the switch to git for the release process

SSLHandler writes corrupt messages under heavy load

A security issue has also been fixed in this version.

We urge you to switch to this version if you were using MINA 2.0.13.

MINA 2.0.13 released posted on February, 16, 2016

Another release to fix a critical SSL bug ( a race condition which could lead to a deadlock in some corner cases).

We urge you to switch to this version if you were using MINA 2.0.12.

Bugs :

DIRMINA-1019 SslHandler flushScheduledEvents race condition

DIRMINA-1027 SSLHandler writes corrupt messages under heavy load

MINA 2.0.12 released posted on February, 07, 2016

This new release of MINA is a bug fix release. There are a few new bugs that were wound in the way we handle closure, leading to some infinite loop consuming 100% CPU, and a bad counter update forbidding the main loop to be exited.

We urge you to switch to this version if you were using MINA 2.0.11.

Bugs :

DIRMINA-1001 mina2.0.9 session.close cpu100%

DIRMINA-1006 mina2.0.9 NioProcessor thread make cpu 100%

DIRMINA-1024 There is no way to start a SslHandshake when the autoStart flag is set to false

DIRMINA-1026 Session may be removed twice from the removedSession queue

MINA 2.0.11 released posted on January, 26, 2016

This new release of MINA is a bug fix release. We have found a critical bug in the SSL Handler, that may cause a loop when dealing with big messages being transmitted over an SSL connection.

Otherwise, thee Javadoc has been cleaned.

We urge you to switch to this version if you were using MINA 2.0.10.

Bugs :

DIRMINA-1023 - Infinite loop in SslHandler when the AppBuffer is too small

DIRMINA-1022 - The IoBuffer.fill(byte, int) method does not work when byte > 0x7F

Improvements :

DIRMINA-985 - Fix the various Javadoc issues

MINA 2.0.10 released posted on December, 16, 2015

This new release of MINA is a bug fix release. Among important fixes, we have removed a bottleneck in the way we were using Codecs, removed a deadlock in SSL when using the proxy, a race condition, and a few other things :

Bugs :

DIRMINA-992 - NioSocketConnector.newHandle throws the wrong exception

DIRMINA-994 - The ConnectionRequest.cancel() method is inconsistent wrt concurrent access

DIRMINA-995 - Deadlock when using SSL and proxy

DIRMINA-1013 - Threading model is suppressed by ProtocolCodecFilter

DIRMINA-1016 - Regression with 2.0.9: Missing javax.net.ssl import in manifest

DIRMINA-1017 - SSLEngine BUFFER_OVERFLOW (unwrap)

DIRMINA-1019 - SslHandler flushScheduledEvents race condition

Improvements :

DIRMINA-1018 - fetchAppBuffer shrink

DIRMINA-1020 - Change minimum version for slf4j in MANIFEST

MINA 2.0.9 released posted on October, 25, 2014

This new release of MINA is just a bug fix release. A few issues have been fixed, one critical, inducing a 100% CPU, and one was annoying as it was generating stack traces for nothing.

You can check the list of fixes for this version there :

Release note

DIRMINA-921 - Maven build fails if test phase is given

DIRMINA-988 - 100% CPU when using IoBuffer.shrink() method in some cases

DIRMINA-989 - Frequent CancelledKeyException

DIRMINA-990 - Control flow over exceptional path in AbstractIoBuffer

DIRMINA-991 - Possible faster deserialization in AbstractIoBuffer object deserialization.

MINA 2.0.8 released posted on September, 22, 2014

It’s 2 years we haven’t had a release of MINA 2.0, it’s about time.

We have tried to fix as much issues as we could in the last 3 weeks. As a result, we have closed around 90 JIRAs (fixed, postponed or simply discarded).

There is one change that might break the build for those switching from MINA 2.0.7 to MINA 2.0.8 : the IoHandler interface now has a method called inputClosed(), so either you have to implement this method if you are directly implementing the IoHandler interface, or better, you can extends IoHandlerAdapter, which implements a placeholder for this method.

You can check the list of fixes for this version there :

Release note

Bug

DIRMINA-539 - NioDatagramConnector doesn’t takes the TrafficClass value set to his DatagramSessionConfig

DIRMINA-574 - ClassCastException when a message is written on a closed session.

DIRMINA-604 - Deadlock occurs when implementing two mina StateMachine

DIRMINA-639 - WriteFuture are updated long after a session.write() is done

DIRMINA-738 - Using IoEventQueueThrottler with a WriteRequestFilter can lead to hangs

DIRMINA-760 - Client fails to detect disconnection

DIRMINA-764 - DDOS possible in only a few seconds…

DIRMINA-777 - IoSessionConfig.setUseReadOperation(true) doesn’t seem to work

DIRMINA-779 - SSLHandler can re-order data that it reads

DIRMINA-782 - Combination of SslFilter & FileRegionWriteFilter causes messageSent events to be lost

DIRMINA-785 - Half-duplex close of TCP channel

DIRMINA-789 - Possible Deadlock/Out of memory when sending large amounts of data using Nio

DIRMINA-792 - await() forever

DIRMINA-804 - NioDatagramAcceptor.unbind does not unbind cleanly

DIRMINA-805 - No cipher suites and protocols in SslFilter

DIRMINA-813 - Starvation occurs sometimes in SerialSession#close()

DIRMINA-818 - Loosing connects on NioSocketConnector

DIRMINA-833 - LoggingFilter does not log SENT bytes when used with a ProtocolCodecFilter

DIRMINA-843 - NioSocketAcceptor does not provide an interface to input connectiontimeout parameter.

DIRMINA-844 - Http Proxy Authentication failed to complete (see description for exact point of failure)

DIRMINA-845 - ProtocolEncoderOutputImpl isn’t thread-safe

DIRMINA-891 - SSLHandler throws SSLException during handshake that sequence number triggers

DIRMINA-899 - IoSession.getAttribute() doesn’t store default value

DIRMINA-902 - Buffer read incorrectly when reading after a NEED_DATA trigger.

DIRMINA-905 - mina serial close

DIRMINA-911 - Surprising behaviour with ConnectFuture

DIRMINA-912 - Different instances of OrderedThreadPoolExecutor may use same task queue

DIRMINA-920 - HTTP server decoding is broken

DIRMINA-926 - IoSession IP Error when Socket Server Communicate With Microcomputer In LAN and Internet.

DIRMINA-928 - when client want to connect to server by binding wrong ip address,there is a bug.

DIRMINA-931 - HTTP header decoding is broken

DIRMINA-932 - HTTP Request decoding is broken if request headers are received in several messages

DIRMINA-933 - subtle HttpServerDecoder problems

DIRMINA-937 - sslfilter hangs with openjdk works with oracle?

DIRMINA-940 - HTTP Client decoder does not support responses without Content-Length header

DIRMINA-942 - Infinite loop flushing to broken pipe

DIRMINA-948 - Performance recession when invoke session.write concurrent

DIRMINA-956 - Status code match bug in AbstractHttpLogicHandler

DIRMINA-957 - MINA build in BlacklistFilter does not support IPV6 address

DIRMINA-962 - Immediate session close with a SSL filter

DIRMINA-963 - Socks5 and ProxyConnector don’t work with InetSocketAddress.createUnresolved

DIRMINA-965 - HttpServerDecoder is broken in certain condition

DIRMINA-966 - NIO Datagram messages can get duplicated when unable to be sent by the underlying DatagramChannel

DIRMINA-967 - IoSession updateThroughput not automatically called

DIRMINA-968 - Memory leak in SSL Handshake errors

DIRMINA-970 - ProtocolEncoderOutputImpl.flush() occur a IllegalArgumentException

DIRMINA-972 - NPE during handshake on Android using SSLFilter

DIRMINA-973 - IllegalArgumentException thrown on ProtocolCodecFilter.flush

DIRMINA-976 - ScheduledWriteBytes Increases after Exception on Writing

DIRMINA-977 - DefaultIoFilterChain.replace does not call register/deregister

DIRMINA-978 - ClosedSelectorException handling in AbstractPollingIoProcessor

DIRMINA-980 - Missing implementation of write() method in SerialSessionImpl.SerialIoProcessor

DIRMINA-981 - IoBuffer GetSlice throw an IllegalArgumentException

DIRMINA-982 - ProtocolEncoderOutputImpl.flush() throws an IllegalArgumentException if buffers queue is empty

DIRMINA-983 - Problems with TextLineDecoder and special characters

Improvement

DIRMINA-210 - Investigate removal of static methods in ByteBuffer

DIRMINA-237 - Improve Spring integration

DIRMINA-572 - Add Spring support for Mina statemachine

DIRMINA-586 - Dynamic delimiter support for TextLineCodecFactory

DIRMINA-593 - Javadoc & documentation for org/apache/mina/filter/reqres

DIRMINA-629 - The IoServiceStatistics methods are called for every new session creation

DIRMINA-631 - AbstractIoFilter: increment written- and receivedMessages statistics on application end of filter chain

DIRMINA-668 - Modify the way we use IoProcessors

DIRMINA-682 - We need a better documentation for the ExecutorFilter [was :Writing more than one message will block until the MessageReceived as been fully proceced]

DIRMINA-723 - OrderedThreadPoolExecutor behavior: configurable queue size, corePoolSize, maximumPoolSize

DIRMINA-752 - maybe move SerialAddressEditor.class to the mina beans project

DIRMINA-761 - how to shutdown a mina application

DIRMINA-766 - Read does not exploit buffer optimally

DIRMINA-767 - Move encoder/decoder out of the session Attributes

DIRMINA-773 - org.apache.mina.filter.firewall.Subnet should consider 0.0.0.0/0 as a subnet that contains ‘all the ipv4 addresses’

DIRMINA-780 - Writing null objects to the Session should raise an Exception

DIRMINA-825 - Add host and port info to BindException thrown by NioSocketAcceptor#open

DIRMINA-838 - Redundant AttributeKey allocation resulting in high garbage collector activity

DIRMINA-913 - Add a method IoSession.isSecured() to tell the user if the SSL filter has been started or not

DIRMINA-921 - Maven build fails if test phase is given

DIRMINA-929 - AbstractPollingIoProcessor patch to mark buffer as free

DIRMINA-934 - Replace synchronized with a Semaphore for better performance

DIRMINA-941 - DefaultIoFilterChain (or any other class) should not catch Throwable without re-throwing

DIRMINA-945 - DefaultVmPipeSessionConfig is empty

New Feature

DIRMINA-23 - New transport type: non-NIO sockets

DIRMINA-68 - Automatic reconnect configuration for client channels.

DIRMINA-389 - Create a Connection Throttle Filter

DIRMINA-453 - Multiple IoServices for one java.nio.Selector

DIRMINA-485 - SCTP Transport based on APR (Apache Portable Runtime)

DIRMINA-489 - Composite IoBuffer

DIRMINA-507 - IoBuffer: Support prepending data

DIRMINA-554 - A hook between bind() and accept()

DIRMINA-655 - Add a more general purpose text based decoder

DIRMINA-816 - NioSocketConnector missing defaultLocalAddress

DIRMINA-964 - Custom NIO SelectorProvider for NioSocketAcceptor

Task

DIRMINA-56 - Create a Benchmark Suite That Generates HTML Reports.

DIRMINA-188 - All-in-one JAR

DIRMINA-477 - Update page about differences between 1.x and 2.x

DIRMINA-721 - Get rid of multiton iohandler and netty2 codec as proposed on ML

Test

DIRMINA-922 - Add a benchmark project to compare with other IO frameworks

Wish

DIRMINA-250 - Provide a test suite for a transport implementor.

DIRMINA-916 - Adding Http Status code 101 “101 Switching Protocols” in org.apache.mina.http.api.HttpStatus

MINA 2.0.7 released posted on October, 12, 2012

The Apache MINA project is pleased to announce MINA 2.0.7 ! This version is a bug fix release.

It fixes a regression introduced in MINA 2.0.5, and some performance improvements for the UDP server.

We recommend all users to upgrade to this release. We consider this a stable and production ready release.

Release note1

Release note2

MINA 2.0.5 released posted on August, 26, 2012

The Apache MINA project is pleased to announce MINA 2.0.5 ! This version is a bug fix release.

We recommend all users to upgrade to this release. We consider this a stable and production ready release.

Release note

MINA 2.0.4 released posted on August, 26, 2012

The Apache MINA project is pleased to announce MINA 2.0.4 ! This version is a bug fix release.

We recommend all users to upgrade to this release. We consider this a stable and production ready release.

Release note

© 2003-2024, The Apache Software Foundation - Privacy Policy

Apache MINA, MINA, Apache Vysper, Vysper, Apache SSHd, SSHd, Apache FtpServer, FtpServer, Apache AsyncWeb, AsyncWeb,

Apache, the Apache feather logo, and the Apache Mina project logos are trademarks of The Apache Software Foundation.

名井南_百度百科

百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心名井南播报讨论上传视频日本女歌手、韩国女子演唱组合TWICE成员名井南(Mina),1997年3月24日出生于美国得克萨斯州圣安东尼奥,日本女歌手,韩国女子演唱组合TWICE、MISAMO成员。2015年5月,在韩国JYP Entertainment选秀节目《SIXTEEN》中脱颖而出,之后随TWICE发行团体专辑《THE STORY BEGINS》而出道;10月20日,为了纪念首张专辑《THE STORY BEGINS》的发行,在韩国举行回归出道Showca ... >>>目录1早年经历2演艺经历3个人生活4主要作品▪音乐专辑▪音乐单曲▪演唱会记录▪综艺节目▪固定综艺▪出演MV▪DVD作品▪影音写真▪游戏作品▪杂志写真5社会活动6获奖记录7人物评价基本信息名井南(Mina),1997年3月24日出生于美国得克萨斯州圣安东尼奥,日本女歌手,韩国女子演唱组合TWICE、MISAMO成员。2015年5月,在韩国JYP Entertainment选秀节目《SIXTEEN》中脱颖而出,之后随TWICE发行团体专辑《THE STORY BEGINS》而出道 [1];10月20日,为了纪念首张专辑《THE STORY BEGINS》的发行,在韩国举行回归出道Showcase [2]。2016年1月21日,名井南随TWICE获得第30届金唱片大赏唱片部门新人奖 [3];同年,名井南还随TWICE首次获得了Mnet亚洲音乐大奖最佳女子团体奖 [4] 。2017年,名井南随TWICE首次获得韩国金唱片大奖音源部门大赏 [5]。2023年,随分队MISAMO发行首张日语迷你专辑《Masterpiece》,正式在日本展开活动 [188]。中文名名井南外文名みょうい みな,묘이 미나,Myoi Mina别    名Mina,미나,ミナ [6]国    籍日本出生地美国得克萨斯州圣安东尼奥出生日期1997年3月24日星    座白羊座血    型A型身    高165 cm体    重45 kg毕业院校日本圣心女子学院职    业歌手经纪公司JYP Entertainment代表作品Like OOH-AHH、CHEER UP、SIGNAL、Heart Shaker、TT、One More Time、Knock Knock、LIKEY主要成就第17届Mnet亚洲音乐大奖最佳女子新人奖第30届金唱片大赏唱片部门新人奖第18届Mnet亚洲音乐大奖最佳女子团体奖 [4]第31届韩国金唱片大奖音源部门大赏 [5]所属组合TWICE队内担当主舞、副主唱、门面 [7] [187]早年经历播报编辑出道前照片(14张)名井南出生于美国得克萨斯州圣安东尼奥,自小学习芭蕾舞。中学时与朋友一起学习少女时代的舞蹈,自此开始关注韩国流行音乐。2013年,在JYP的日本选秀中合格,但父母亲因她未完成高中学业而反对成为练习生,在多次表达自己想成为歌手的意愿后,才同意她前往韩国当练习生 [8]。演艺经历播报编辑名井南(27张)2014年8月,出演李俊昊《FEEL》MV;11月,出演GOT7《Stop stop it》MV。2015年2月,出演张祐荣《R.O.S.E. (Japanese Ver.)》MV;3月,出演miss A《Only You》MV;5月,出演JYP Entertainment与Mnet共同制作的选秀节目《SIXTEEN》,最后胜出比赛并成为TWICE成员 [1];7月,出演NAVER CAST实景综艺节目《TWICE TV》 [9] ;10月20日,为了纪念首张专辑《THE STORY BEGINS》的发行,在韩国举行回归出道Showcase [2];12月3日,获得第17届Mnet亚洲音乐大奖最佳女子新人奖 [10];12月19日,获得第7届菲律宾K-Pop年度大会最佳新人奖 [11];同月,所属组合与尼查坤·抔勒威查固拍摄首尔市宣传片 [12]。knock knock mv动图2016年1月,出演竞技节目《偶像运动会》 [13];1月21日,获得第30届金唱片大赏唱片部门新人奖 [3];3月1日,出演首个团体综艺节目《TWICE优雅的生活》 [14];4月25日,发行第二张迷你专辑《PAGE TWO》,主打曲为Color pop风格的《CHEER UP》,专辑总销量超过15万张 [15],主打曲在MelOn、Genie、Naver Music等5个音源网站上连续四周排名第一 [16],主打曲MV点击量超过一亿,并创下韩国偶像团体MV破亿最快纪录 [17]。下半年7月,名井南随组合TWICE参加了在美国举行的KCON LA演唱会 [18-19]。9月,出演竞技节目《偶像运动会》,参加艺术体操项目 [20];9月15日,名井南翻唱了前辈toy的歌曲《好人》,并公开了《好人》MV及花絮 [21]。10月21日,名井南所在组合TWICE发行第三张迷你专辑《TWICEcoaster : LANE 1》,主打歌为奇幻风格的《TT》,专辑发行一周后,销量超过16万5千张,是本年女团专辑销售量的最佳纪录 [22],而主打歌则在韩国多档音乐节目中获得了十三个单曲一位 [23]。11月,TWICE获得了Asia Artist Awards歌手部门Best Artist奖 [24];11月10日,和TWICE其他成员在Ment带来《so hot》的特别舞台 [25]。12月2日,TWICE在18届Mnet亚洲音乐大奖中获得最佳女子团体奖 [26],而她们的歌曲《CHEER UP》则拿下了最佳年度歌曲奖 [27];12月26日,名井南参加了一年一度的SBS歌谣大战,并与队友及前辈一起献上特别舞台《24小时都不够》、《Tell me》、《你妈妈是谁》、现代舞;12月29日,她随组合TWICE参加KBS歌谣大祝祭 [28],并在前辈黄致列的《想念想念你》舞台中带来芭蕾舞表演。签售会官方ins(12张)2017年1月,名井南随TWICE一起参加韩国金唱片大奖颁奖典礼,而她们则在典礼上一举获得了音源部门本赏和最终的音源部门大赏;1月,出演竞技节目《偶像运动会》,参加艺术体操项目并获得冠军 [29]。2月,她随TWICE举办了'TWICELAND巡回演唱会,而这也是她们的首次单独演唱会 [30];2月20日,名井南所在组合TWICE发行特别专辑《TWICEcoaster : LANE 2》,主打歌为曲风清新活泼的《Knock Knock》 [31],而该歌曲在发行三个月后于Youtube累计点击量已经破亿,同时也在韩国多个音乐节目中获得了九个单曲一位 [32]。5月15日,发行迷你4辑《SIGNAL》 [33],其中的专辑同名主打歌则由JYP社长朴振英亲自创作,这也是TWICE出道之后首次以朴振英制作的歌曲作为主打歌回归 [34],而这首歌则获得了韩国多个音乐节目的十二个单曲一位 [35]。同年6月28日,名井南所在组合TWICE发行首张韩日双语专辑《#TWICE》,并在日本正式出道 [36]。7月2日,她们在日本举办了首次单独公演 [37]。8月,名井南随TWIICE前往越南录制综艺《团结才能火》 [38]。10月14日、15日名井南随组合TWICE举办了首次正式Fan Meeting《ONCE BEGINS》;10月18日,名井南随TWICE在日本推出日文单曲碟《One More Time》 [39];10月30日,TWICE以首张团体正规专辑《Twicetagram》回归 [40],专辑共收录13首歌曲,主打歌《LIKEY》的风格青春活泼又带着中毒性旋律 [41]。11月29日,TWICE出席Mnet亚洲音乐大奖颁奖典礼,获得最佳舞蹈表演女团奖 [42],并凭借《SIGNAL》再次拿下了最佳年度歌曲奖 [43]。12月11日,随TWICE发行了正规一辑后续专辑《Merry&Happy》 [44]。而正规一辑和主打歌更在美国公告牌世界专辑榜、世界单曲榜上双双获得实时第一,她们也成为了在该排行榜上取得此成绩的首组女性K-POP歌手 [45],与此同时,TWICE也以突破95万的销售量创造了韩国gaon歌手总销量排行榜女团单年最高销量记录。12月23日,名井南随组合TWICE登上朝日电视台年终音乐庆典《Music Station Super Live》的舞台 [46];12月25日,她随TWICE连续第二年参加了韩国三大电视台的歌谣大战 [47],并与队友带来特别舞台《now》2017;12月31日,她还与成员们登上日本NHK电视台第68届红白歌合战 [48]。演艺经历2018年1月,名井南随TWICE在连续两天的第32届韩国金唱片大奖颁奖典礼上获得了音源部门本赏 [49]、唱片部门本赏和Ceci亚洲偶像奖 [50];同时,她还与TWICE成员们在日本六都市举行TWICE SHOWCASE LIVE TOUR巡回演唱会 [51]。2月,名井南随TWICE发行了她们的第二张日语单曲碟《Candy Pop》 [52]。2月26日,名井南随TWICE获得了第32届日本金唱片大奖的五个奖项 [53]。3月23日,名井南随TWICE参加了《音乐银行》的智利公演 [54]。4月3日,名井南和队友平井桃参与了MBC《蒙面歌王》的拍摄 [55];4月9日,名井南随TWICE发表迷你5辑《What Is Love》,专辑同名主打歌是首曲风轻快,充满青春活力的作品 [56],这首歌在韩国音乐节目中则获得了十二个一位 [57-63]。4月15日,名井南随TWICE参加了在日本举行的KCON JAPAN演唱会 [64]。5月16日,名井南随TWICE在日本推出第三张单曲《Wake Me Up》 [65]。5月,名井南随TWICE在首尔开启了TWICE 2ND TOUR 'TWICELAND ZONE 2 : Fantasy Park'全球巡回演唱会的帷幕 [66]。6月,TWICE的第三张日文单曲碟《Wake Me Up》以超过五十万张的销售量达到了日本唱片协会的双白金认证 [67];随后,她们还连续两年被评为韩国音乐最有影响力人物问卷调查最佳女子组合 [68]。6月29日,名井南随TWICE参加了《音乐银行》20周年特辑,并带来特别舞台《so hot》 [69]。MINA7月9日,名井南随TWICE发行了夏季特别专辑《Summer Nights》,主打曲为《Dance The Night Away》 [70],其中名井南参与了收录曲《Shot thru the heart》的作词 [71]。8月10日,名井南随TWICE参加了在美国举行的KCON LA演唱会,并担任环节主持人 [72]。在9月12日,名井南随TWICE发行了第一张团体日文正规专辑《BDZ》 [73],并开始在日本四都市举行TWICE ARENA TOUR秋季公演 [74];而TWICE出演的首部电影作品《TWICELAND》也于同期在韩国上映 [75]。11月5日,名井南随TWICE发行了迷你六辑《Yes Or Yes》 [76]。12月12日,名井南随TWICE发行了第三张特别专辑《The year of YES》 [77]。12月底,名井南随TWICE出演了日本NHK电视台第69届红白歌合战 [78]。演艺经历2019年1月,名井南随TWICE在韩国金唱片大奖颁奖礼上连续两年获得了音源部门和唱片部门双本赏 [79-81];月底,名井南随TWICE参加了《音乐银行》的香港公演,并与队友一起带来《MOVE》的特别舞台 [82]。3月底,名井南随TWICE在日本东京、大阪、名古屋圆顶体育馆举行共5场巨蛋演唱会 [83-84]。4月22日,名井南随TWICE发行了充满复古味道的第七张迷你专辑《FANCY YOU》。5月25日,她又与队友们在首尔拉开了第一次全球巡回演唱会的帷幕 [85]。7月,名井南因健康原因暂停活动,将不参加组合的全球巡演等活动 [86-87]。8月27日,名井南所在的JYP公司表示,通过多家专业医疗机构确认,名井南被确诊为焦虑症,会不可避免的参加组合部分活动 [86];8月29日,名井南完成组合新曲MV拍摄活动 [88]。9月23日,名井南随TWICE拍摄的第八张迷你专辑《Feel Special》发行,不参加专辑其他活动 [89]。10月20日,暂停活动的名井南时隔三个多月现身在组合“Once Halloween 2”四周年粉丝见面会上 [90];10月23日,名井南随TWICE参加TWICE WORLD TOUR 2019 ‘TWICELIGHTS’ IN JAPAN演唱会 [91]。2020年6月1日,名井南随TWICE发行第九张迷你专辑《MORE & MORE》。 [92]同年7月8日随组合TWICE发行第六张日文单曲《Fanfare》。 [93]2023年2月9日,TWICE的日本成员MINA、SANA、MOMO 将结成3人组合“MISAMO”正式在日本开启活动,将于7月26日发售首张迷你专辑(标题未定)。 [184]3月8日,TWICE《SET ME FREE》 MV 预告公开,迷你12辑《READY TO BE》将于3月10日发行; [186]4月15日至7月9日,参加TWICE第五次世界巡演 [185];7月26日,随分队MISAMO发行首张日语迷你专辑《Masterpiece》,从而正式在日本展开活动,专辑收录了主打曲《Do not touch》在内的七首歌曲,其参与了歌曲《It is not easy for you》的歌词创作 [188]。机场私服(76张)粉丝签售(60张)画报代言(20张)舞台表演(44张)短发名井南(5张)个人生活播报编辑家庭名井南的父亲是大阪大学医院骨科教授,母亲是家庭主妇 [94-95]。健康2022年5月23日,韩国JYP娱乐官方发文,表示名井南确诊感染新冠 [183]。个人生活主要作品播报编辑音乐专辑Masterpiece发行时间2023-7-26Fanfare发行时间2020-7-8MORE & MORE发行时间2020-6-1Feel Special发行时间2019-09-23Breakthrough发行时间2019-07-24HAPPY HAPPY发行时间2019-07-17FANCY YOU发行时间2019-04-22#TWICE 2发行时间2019-03-06BDZ (Repackage)发行时间2018-12-26The year of “YES”发行时间2018-12-121/3音乐单曲歌曲名称发行时间歌曲简介Encore2016-07-25在演唱会上发表由JYP娱乐旗下艺人们合唱的特别歌曲좋은 사람(好人)(cover.toy)2016-09-15通过youtub发布MELODY PROJECT MINAI WANT YOU BACK2018-06-15日本电影《老师君主》主题曲,为翻唱歌曲STAY BY MY SIDE2018-10-06电视剧《深夜のダメ恋図鉴》主题曲专辑参考资料 [39] [96-105]、 [106]、 [21]、 [107]、 [65]、 [108]、 [70]、 [109]、 [110]、 [111]、 [112]、 [113]、 [114]、 [115]演唱会记录举办时间演唱会名称总场次2017TWICE 1ST TOUR 'TWICELAND [116]7 场2017TWICE DEBUT SHOWCASE “Touchdown in JAPAN”2 场2018TWICE SHOWCASE LIVE TOUR [51]8 场2018TWICELAND ZONE 2:Fantasy Park [117]11 场2016JYP NATION家族演唱会 [123]5 场2018TWICE ARENA TOUR [125]9 场2019TWICE DOME TOUR“#Dreamday” [83]5 场 [84]2019TWICE WORLD TOUR [126]4 场2019-2-02TWICE WORLD TOUR 2019 ‘TWICELIGHTS’ IN JAPAN [130]15 场 [131]综艺节目播出时间节目名称简介2018-11-12你好第一次出演,和志效一起出演 [132]2018-11-06idol room第二次出演 [133]2018-11-03认识的哥哥全员出演 [134]2018-09-17MUSIC STATION ウルトラFES [135]第二次出演2018-08-31Music Station [135]第五次常规出演2018-08-03Music station日本音乐娱乐节目(第四次常规出演) [136]2018-07-29隐藏的歌手5和队友定延、sana一起参加 [137]2018-07-13演艺家中介 [138]韩国KBS2综艺节目回归综艺2018-05-25Music Station [139]第三次常规出演2018-04-29M-ON! LIVE TWICE演唱会实录 [140]2018-04-29Running Man第三次出演 [141]2018-04-22蒙面歌王与队友MOMO、孙彩瑛一起参加,担任节目评审嘉宾,第一次出演-下半场。 [142]2018-04-22搞笑演唱会第一次出演,与队友sana、志效、多贤一起出演 [143]2018-04-20演艺家中介 [144]韩国KBS2综艺节目回归综艺2018-04-15蒙面歌王《蒙面歌王》是韩国MBC电视台倾心打造的一档音乐真人秀节目。与队友MOMO、孙彩瑛一起参加,担任节目评审嘉宾。 [145]2018-04-14柳熙烈的写生簿第四次出演 [146]< 上一页|1|2|3|4|下一页 >默认显示|全部显示固定综艺播出时间节目名称备注信息2017TWICE TV6 -TWICE in SINGAPORETWICE在新加坡录制的专属综艺节目2017团结才能火韩国JTBC综艺节目2017TWICE TV5-SWITZERLANDTWICE的瑞士行, 多集短视频团体综艺节目2017Lost:Time团体专属综艺2017AMIGO TV团体专属综艺2017TWICE TV SPECIALTWICE的专属综艺节目,共六期2016TWICE TV4TWICE的专属综艺节目,共八期2016TWICE TV3WICE的济州岛休学旅行,共八期2016TWICE优雅的私生活TWICE的首个专属偶像真人秀,共八期 [14]2015我的小电视韩国MBC综艺节目2015TWICE TV2团体专属综艺2015TWICE TV1公开成员们的访问、对未来的期许等故事。2015TWICE TV BEGINSSixteen的后续团体综艺2015SixteenJYP公司推出的艺人选拔节目,共十期 [1]出演MV发布日期歌曲名称演唱歌手2014-11-16하지하지마 (Stop stop it)GOT72015-02-09R.O.S.E.(Japanese Ver.)张祐荣2015-03-30다른 남자 말고 너 (Only You)miss A2016Fire [161]朴振荣DVD作品发行时间作品名称作品类型2017-12-20TWICE DEBUT SHOWCASE “Touchdown in JAPAN”表演舞台2017-11-17TWICE 1ST TOURTWICELAND-THEOPENING演唱会实录2017ONC EBEGINS表演舞台+幕后花絮2017-08-10TWICE SUPER EVENT拍摄花絮影音写真发行时间作品名称基本信息2019-03#DreamdayPHOTO BOOK日本圆顶演唱会图册2019-03#Dreamday DREAM BOOK[38]日本圆顶演唱会写真书2019-02-25TWICE TV 2018团体综艺节目DVD2019-02-25TWICE TV6 in SINGAPORE团体综艺节目DVD2019-02-22TOWER PLUS+专辑图册2019-01-28The year of "YES"专辑写真+DVD2019-01-28YES or YES专辑写真+DVD2018-12-24Summer Nights专辑写真+DVD2018-12TWICE 2019 SEASON'S GREETINGS团体写真2018-11-26THE ROSES台历写真+DVD2018-10TO.ONCEFROM.JIHYO2TWICE成员朴志效的第二本写真集2018-10TWICEZINE ONCE HALLOWEEN官方见面会周边写真2018-10TWICEZINE ONCE 2ND GEN团体写真2018-10TWICE AIRLINES[39]台历写真+周边产品2018-09TWICE 1st ARENA TOUR"BDZ"演唱会周边写真2018-09-12TWICE ARTIST MAKING BOOK "BDZ"专辑写真+DVD2018-09ONCE BEGINS[40]官方粉丝见面会DVD+写真2018-09TWICELAND ZONE 2 FANTASY PARK IN JAPAN演唱会写真2018-09TWICE TV6 IN SINGAPORE团体写真2018-08-27What is Love?写真+DVD2018-07TWICEZINE JEJU ISLAND EDITION团体写真2018-06-04TWICELAND -THE OPENING-ENCORE[41]演唱会DVD2018-05TWICE 2ND TOUR 'TWICELAND ZONE 2 : Fantasy Park'图卷+贺卡写真2018-05Merry&Happy写真+DVD2018-04TWICE JAPAN ONCE日本粉丝会员杂志特刊2018-03DAHYUNPHOTOBOOKTWICE成员金多贤的写真集2018-03TWICE PHOTO BOOK代言写真2018-02TWICE MONOGRAPH团体相册2018-01-18TWICE TV5 OFFICIAL GOODS写真+DVD2018Twicetagram[42]专辑写真+DVD2017-12-20TWICE DEBUT SHOWCASE “Touchdown in JAPAN”演唱会DVD2017-12TWISTAR团体写真2017-12TWICE JIHYO'S PHOTOBOOK团体写真2017-11-27TWICE 1ST TOURTWICELAND-THEOPENING-演唱会DVD2017-11TWICE FIRST LOVE年历+DVD2017-10TWICE SIGNAL MONOGRAPH写真+DVD2017-10TWICE JEJU ISLAND团体写真2017-08-10TWICE SUPER EVENT拍摄花絮DVD2017-08TWICE 1st PHOTOBOOK ONE IN A MILLION团体写真书2017TWICE ZINE团体写真2017TWICE MEMORIES团体写真2016TWICE TV2写真+DVD2016TWICE X SUDDEN ATTACK台历写真2016SEASON GREETING团体写真2016TWICE TV2 PHOTO BOOK团体写真2016TWICE MONOGRAPH团体写真2016TWIVE PAGE TWO团体写真2016JYPNATION MINI团体写真游戏作品发行时间游戏名称备注信息2018年12月TWICE -GO! GO! Fightin’- [162]TWICE为主角的游戏作品杂志写真ViVi2017年6月封面COSMOPOLITAN2017年12月内页STAR12017年5月内页cancan2018年7月封面1/1台历写真(36张)直南角度自拍(33张)名井撩(12张)社会活动播报编辑参加公益活动图2016年1月,随组合与朴振荣一同出席韩国京畿道某高中举行的公益活动,捐献校服给就读于该学校的脱北学生 [163]。2017年5月5日,名井南随TWICE参加了给予儿童新生命公益活动 [164];同年12月17日,名井南在韩国注册成为了器官捐赠者,而早在2013年她便已在日本登记成为器官捐献者 [165];2017年12月31日,名井南参加了“Save the children”的儿童慈善活动,并在繁忙的日程中完成了织帽和捐助行动 [166]。获奖记录播报编辑组合韩国奖项获奖时间奖项名称获奖作品获奖结果2018-08-30第二届SORIBADA最佳音乐大奖音源大赏 [167]What is Love?获奖2018-08-30第二届SORIBADA最佳音乐大奖本赏 [167]获奖2018-02-14第7届Gaon Chart Music Awards 年度歌手奖-12月份数码音源奖 [168]Heart Shaker获奖2018-02-14第7届Gaon Chart Music Awards 年度歌手奖-2月份数码音源奖 [168]Knock Knock获奖2018-01-25第27届首尔歌谣大赏本赏 [169]获奖2018-01-11第32届韩国金唱片大奖Ceci亚洲偶像奖 [50]获奖2018-01-11第32届韩国金唱片大奖唱片部门本赏 [50]获奖2018-01-10第32届韩国金唱片大奖音源部门本赏 [49]获奖2017-12-02第9届Melon音乐奖TOP10获奖2017-12-02第9届Melon音乐奖女团最佳舞蹈奖获奖2017-11-29第19届Mnet亚洲音乐大奖最佳舞蹈表演女团奖 [42]SIGNAL获奖2017-11-29第19届Mnet亚洲音乐大奖最佳年度歌曲奖 [43]SIGNAL获奖2017-11-03第8届韩国大众文化艺术奖文化体育观光部长官表彰 [170]获奖2017-01-19第26届首尔歌谣大赏本赏获奖2017-01-19第26届首尔歌谣大赏最佳音源奖CHEER UP获奖2017-01-19第26届首尔歌谣大赏最佳舞蹈表演奖获奖2017-01-13第31届韩国金唱片大奖音源部门大赏 [5]CHEER UP获奖2017-01-13第31届韩国金唱片大奖音源部门本赏 [171]CHEER UP获奖2016-12-02第18届Mnet亚洲音乐大奖 最佳女子团体奖 [26]获奖2016-12-02第18届Mnet亚洲音乐大奖 最佳歌曲 [26]CHEER UP获奖2016-11-19第8届Melon音乐奖年度歌曲奖CHEER UP获奖2016-11-19第8届Melon音乐奖TOP10 [172]获奖2016-11-16Asia Artist Awards 最佳歌手奖 [173]获奖2016-01-21第30届韩国金唱片大奖唱片部门新人赏 [174]获奖2015-12-03第17届Mnet亚洲音乐大奖最佳女子新人 [175]获奖组合日本奖项获奖时间奖项名称获奖作品获奖结果2018-02-10日本唱片协会白金唱片认证 [176]Candy Pop获奖2017-12-06日本MDPR新闻读者票选最佳音乐人奖新人奖 [177]获奖2017-10-28日本唱片协会白金唱片认证 [176]One More Time获奖2017-08-17日本唱片协会白金唱片认证 [178]#TWICE获奖2018-02-26第32届日本金唱片大奖年度最佳新人(亚洲地区) [53]获奖2018-02-26第32届日本金唱片大奖年度最佳三大新人 [53]获奖2018-02-26第32届日本金唱片大奖年度最佳专辑 [53]#TWICE获奖2018-02-26第32届日本金唱片大奖年度最佳三大专辑 [53]获奖2018-02-26第32届日本金唱片大奖年度最佳下载单曲 [53]TT-日文版获奖人物评价播报编辑2020年《MORE & MORE》回归舞台(4张)名井南表现出独特的魅力、个性,以及正值青春年华的少女气息。穿着带有迷彩花纹的服装登场时,看起来美丽又率性,展现出她独特的魅力与气质。在真人秀里,名井南表现出了她们可爱淘气的一面,展现出她们身上的巨星潜力 [179]。名井南呆萌可爱,青春洋溢,身穿红色上衣的她显得喜气洋洋,全身都在散发甜美气息 [180],而当她身穿蓝色牛仔裙时,其白皙的皮肤加上大长腿则又吸睛满满 [181]。现身仁川机场的她身穿黑色皮衣夹克配牛仔裤时,帅气的感觉迎面扑来 [182]。(Kpopn、中国网娱乐、人民网评)新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

出身名门的 Mina 通信框架,可靠且省时! - 知乎

出身名门的 Mina 通信框架,可靠且省时! - 知乎首发于异步图书切换模式写文章登录/注册出身名门的 Mina 通信框架,可靠且省时!人邮异步社区官方微信:异步社区,人民邮电出版社创办的IT专业图书社区随着网络通信技术的发展速度加快,互联网应用对高并发、高可用的要求越来越高,分布式、弹性伸缩的架构逐渐成为开发人员常用的技术了。在Java NIO通信框架中,出身于开源界的大牛Apache组织的Mina通信框架为开发者们提供了很大的便利。那Mina框架的执行流程是怎么样的呢?异步君带大家来了解一下Mina设计架构吧!Mina设计架构Mina 框架是 Apache 开源的一款网络通信应用框架。使用 Mina 框架可以帮助用户开发高性能和高伸缩性的网络应用框架。Mina 提供了一个抽象的事件驱动,开发者既可以通过 Java NIO 实现 TCP/IP 和 UDP/IP 等协议的数据传输,也可以在 VM 内管道通信。Mina 对于传输不同类型数据,提供了一整套的 API,极大地减少了开发者的开发时间。在客户端与服务器端连接成功之后,可以抽象地认为客户端与服务器端建立了一个通信管道, IoSession 就是负责在管道中传输数据和接收数据的管理者,同时 Mina 提供了过滤器,能够增强开发者对管道的管理。在 IoHandler 作为 Mina 执行流程的末端,需要开发者在 IoHandler 中实现业务逻辑的编码。对于在互联网 TCP 协议传输数据包的时候,Mina 提供了编码解码过滤器,帮助开发者解决粘包和断包问题处理,同时 Mina 也支持开发者自定义数据包的编码和解码操作。Mina整体架构在 Mina 运行架构中,开发者只需要关注应用程序开发即可。Mina 会自动把开发者的应用程序和底层网络层之间黏合起来,开发者不需要考虑网络通信中底层的实现。也就是说,Mina 起到的是黏合剂的作用。这里说的应用程序是指 Mina 建立的客户端应用程序或者 Mina 建立的一个后端应用程序,如图所示。Mina存在于中间层,开发者只需要关注于Mina顶部的设计,即应用程序设计。也就是说,开发者根据业务需求开发出对应的应用程序即可。至于 Mina 底层网络数据的传输,不需要开发者去关心。对于Mina黏合底层网络层,可以基于TCP 协议、UDP 协议或者 VM 通信。Mina 负责接收底层网络数据 之后,并且通过过滤器编码或者解码,把数据转化成开发者需要的数据包,返回到开发者的应用程序中。Mina执行流程Mina 整体执行流程分为服务器端执行流程和客户端执行流程。无论是服务器端执行流程,还是客户端执行流程两者都具有很大的共性:需要在应用程序中新建 IoService 服务。IoService服务分为两种,一种是包括开启Mina服务器端接收器 IoAcceptor,另一种是Mina客户端连接服务器端的IoConnector连接器。接着在IoFilterChain 中创建过滤链。在创建过滤链的时候,开发者根据项目需求的选择 Mina 自带的过滤 器,增强对应用程序的控制。最后在 IoHandler 中实现开发者业务逻辑处理。Mina服务器端执行流程对于 Mina 服务器端执行流程主要分为3步:首先 IoAcceptor 接收器监听端口号,或者监听IP地址和端口号,实现接收客户端新建连接或者接收客户端发送来服务器端的数据包。接着开始遍历在开启Mina接收器时,加入的过滤链中的过滤器,在加载完过滤器之后,数据就会传输到 IoHandler 中,在 IoHandler 中开发者需要根据需求实现业务逻辑代码。接收器执行流程如图所示。当接收器IoAcceptor接收到有新客户端连接的时候,就会为这位客户端创建对应新的会话IoSession,服务器端通过操作这个会话IoSession实现对客户端发送数据、接收数据或者接收客户端的请求等操作。IoFilter过滤器可以用来解析数据包的内容或者增强对应用程序流程的控制等操作,例如,当开发者使用自定义编码和解码器的时候,需要判断此刻服务器端接收的数据包是否完整,是否出现粘包或者断包现象;当发现非法IP地址连接的时候,直接拒绝非法客户端的连接。在IoFilter中,开发者根据需要实现项目中自定义的编码解码。执行完IoFilter 过滤链之后,后端通过 IoSession 发送数据包到客户端。Mina客户端执行流程Mina 客户端执行流程也是分为 3 个部分,客户端通过 IoHandler 从服务器端接收所有响应请求和消息之后,通过开发者在 IoConnector 连接服务器时,遍历加入过滤链的过滤器,接着通过 IoConnector 发送数 据到服务器端。Mina 客户端执行流程如图 所示。在客户端中负责连接后端的 IoConnector 连接器,客户端在新建连接的时候,指定服务器端的 IP 地址和端口号进行连接,在客户端连接成功之后,就会创建与服务器端关联的会话 IoSession,客户端通过这个会话 IoSession,向服务器端发送消息,在发送消息之前,连接器会遍历过滤链中开发者在客户端加入的编码模式,在对数据包进行编码完成之后,向后端发送数据包。Mina 执行流程无论是客户端,还是服务器端都需要经过过滤链,遍历开发者加入过滤链中的过滤器,过 滤器在其中的作用至关重要,在加入过滤器的时候,可以加入日志过滤器、开发者自定义的编码解码过 滤工厂等。在 IoService 中会把 NIO 烦琐的部分进行封装,提供简洁的接口给开发者使用。IoService 分为 Mina 服务器端接收器 IoAcceptor 和 Mina 客户端连接器 IoConnector。在 Mina 客户端连接器 IoConnector 连接成功之后,就生成一个与服务器端关联是 IoSession,开发者根据获得的 IoSession 向后端 发送数据包,同样的,对服务器而言,接收器成功接收客户端连接器连接之后,也会与成功连接的每一 个客户端连接器生成一个关联的 IoSession,服务器端通过操作 IoSession,可以向每一个连接成功客户端 发送数据包。编辑于 2022-07-21 19:51网络编程并发并行与分布式系统通信​赞同 1​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录异步图书IT类的大咖推荐书

Apache MINA — Apache MINA

Apache MINA — Apache MINA

Apache MINA Project

 | 

MINA

 | 

AsyncWeb

 | 

FtpServer

 | 

SSHD

 | 

Vysper

Social Networks

Apache MINA Mastodon

Latest Downloads

Mina 2.0.25

Mina 2.1.8

Mina 2.2.3

FtpServer 1.1.4

FtpServer 1.2.0

SSHD 2.12.1

Vysper 0.7

Projects

MINA

AsyncWeb

FtpServer

SSHD

Vysper

Community

Team

License

Contributing

ASF main site

Thanks

Sponsorship program

Security

Upcoming

Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

Apache MINA is often called:

NIO framework library,

client server framework library, or

a networking socket library

Apache MINA comes with many subprojects :

AsyncWeb : An HTTP server build on top of MINA asynchronous framework

FtpServer : A FTP server

SSHd : A Java library supporting the SSH protocol

Vysper : An XMPP server

© 2003-2024, The Apache Software Foundation - Privacy Policy

Apache MINA, MINA, Apache Vysper, Vysper, Apache SSHd, SSHd, Apache FtpServer, FtpServer, Apache AsyncWeb, AsyncWeb,

Apache, the Apache feather logo, and the Apache Mina project logos are trademarks of The Apache Software Foundation.

关于 | Mina Protocol

| Mina Protocol Sign up to be notified when zkIgnite, Cohort 3 starts. 立即注册 Change Region English 简体中文 Русский Türkçe 한국어 开发者 入门手册 技术文档 Mina 领航者计划 关于 关于米娜 路线图 用例 与米娜一起工作 技术 米娜的工作原理 zkApps 节点运算符 社区 米娜社区 生态资助金项目 博客 订阅时事通讯 开发者 入门手册 技术文档 Mina 领航者计划 关于 关于米娜 路线图 用例 与米娜一起工作 技术 米娜的工作原理 zkApps 节点运算符 社区 米娜社区 生态资助金项目 博客 Change Region English 简体中文 Русский Türkçe 日本語 한국어 订阅时事通讯 关于 我们怀揣一个使命 旨在打造一个蓬勃的去中心化网络和开放的可编程货币—所有人都能参与、创造、交易和壮大。 主宰未来的时刻已到 如今我们生存的世界需要我们放弃许多控制。 每天,为了使用线上服务,我们放弃私密信息的控制权,转交给技术大公司低头。为了使用银行服务,我们放弃自己财物的控制权,转交给银行和不可靠的信用机构。为了参与选举,我们不得不相信选举系统公司,而这些公司的选举操作却不透明、无法审计。 也就是因为这样的力量不平衡,我们想要使用区块链,但大部分参与者还是不得不依赖第三方来验证交易。为什么?因为运行全节点需要昂贵的硬件设施和大量的电量,随着区块链越来越臃肿,同步时间将越来越长。 其实大可不必。 这也是为什么我们开发了Mina。 2017年6月,O(1)Labs启动了一个充满决心的新开源项目,旨在设计一个能传达区块链初心的底层协议——实现真正的去中心化、可拓展和安全。 Mina并非采纳原始的算力大战,而是采用先进的加密技术和递归零知识证明zk-SNARKs,推出了一款优雅的解决方案。 过去三年,我们团队和给力的社区发布和迭代了好几次测试网。现在,我们终于可以自豪地将Mina推广至全球。在Mina,开发人员可以开发zkApps应用(由SNARK支持)来支持金融服务,用户无需放弃隐私信息和可编程金钱,直接用手机便可使用该服务。但,这只是刚开始。 未来有挑战在所难免,Mina定位是全世界最轻量级最方便使用的区块链,未来我们将看到新一代享用Mina的服务,感受区块链的赋能。 在此,我们致敬一个更高效、更优雅、更公平的未来。 “小型可拓展的区块链能独立在小节点上得到验证,这点尤其吸引我。” MetaStable O(1) Labs投资人 参与者共同维护其安全 Mina网路允许无上限的区块产生者通过PoS共识维护。这是一个独特的去中心化区块链,随着越来越多人加入,区块链会更安全,适应性更强。 100s 区块生产者 100s SNARK生产者 区块生产者主力 除了直接质押Mina外,委派也是一种方式,而且不需要维护节点连接网络。以下是Mina上的一些专业区块生产者,负责提供质押服务。 运行节点和维护网络 有了Mina的轻量级区块链,用户无需高昂的硬件设备,也不需要等待数天区块链同步,更无须使用大量的算力来质押和参与共识。 开始 贡献者 Alexander Alexander "I feel that Mina’s testnet is the most accessible compared to other testnets. Every step is explained very well in the docs, which is very important to me as I'm not a technical specialist." Samuel Arogbonlo Infrastructure Engineer Samuel Arogbonlo Infrastructure Engineer Samuel is a blockchain infrastructure enthusiast that has been working across several infrastructures in the fintech, health and educational sector. Before he received his Bachelors in Engineering from Landmark University, he was a Udemy ambassador in Nigeria. He also learnt how to build systems himself and grew an Infrastructure community in his university from <50 to over 500 in a year. Since joining O(1) Labs he has been focused on building the most stable helm charts for mina network deployments, as well as stabilising the current systems while following the team's vision to build the world's lightest blockchain. Elizabeth Binks Software Engineer, Chainsafe Systems Elizabeth Binks Software Engineer, Chainsafe Systems Joseph Bonneau Assistant Professor, NYU Courant Institute Joseph Bonneau Assistant Professor, NYU Courant Institute Joseph is an assistant professor at NYU. His research has spanned a variety of topics in cryptography and security including HTTPS and web security, passwords and authentication, cryptocurrencies, end-to-end encrypted communication tools, and side-channel cryptanalysis. He is co-author of the popular textbook "Bitcoin and Cryptocurrency Technologies" and co-taught the first MOOC on cryptocurrencies. He holds a PhD from the University of Cambridge and BS and MS degrees in computer science and cryptography from Stanford University. Robin Bate Boerop Head of Engineering Robin Bate Boerop Head of Engineering Robin is a global software team leadership consultant, software technology entrepreneur, and IT consultancy owner. He has decades of experience in the startup space along with 22 years of software engineering experience. He uses a hands-on approach to make winning software teams. Natasha Carter Communications Lead, Mina Foundation Natasha Carter Communications Lead, Mina Foundation Natasha was born and raised in Northern England, and previously worked in the UK media and journalism industry for almost a decade. She is deeply interested in blockchain and the future of fintech, and has a passion for novels and 90s house. Lindsay Casale Senior Director, Marketing & Community Lindsay Casale Senior Director, Marketing & Community Lindsay Casale is passionate about bringing people together over their shared ambitions through community events and programs. With 10+ years of experience across SoFi, Salesforce, MSLGROUP, and EXL Service, Lindsay has led events, marketing, and PR teams and strategies at various large and small companies alike. Prior to Mina, Lindsay led the Member Benefits team at SoFi for 5+ years, serving 4M+ members. Lindsay is also passionate about developing and empowering the next generation of professionals, serving as a board member and volunteer at non-profit organizations, including Young Professionals of San Francisco, Dress for Success, and Boys and Girls Clubs. Hsin-Ju Chuang CEO & Founder of Dystopia Labs Hsin-Ju Chuang CEO & Founder of Dystopia Labs Paul Davison Co-Founder & CEO, Clubhouse Paul Davison Co-Founder & CEO, Clubhouse Paul Davison co-founded Clubhouse, an audio-based social media app where users can join in or listen to people across unlabeled chat rooms. He also co-founded and served as CEO of CoinList - the leading platform for high quality, compliant token sales and airdrops. Prior to CoinList, Paul was the Founder/CEO of Highlight (acquired by Pinterest), an EIR at Benchmark Capital, and a VP at Metaweb (acquired by Google). He holds a BS from Stanford University and an MBA from Stanford Business School. Nikki Del Principe Chief Strategy Officer, Melrose PR Nikki Del Principe Chief Strategy Officer, Melrose PR Kate El-Bizri Creative Director, Mina Foundation Kate El-Bizri Creative Director, Mina Foundation I love to explore how creating an emotional connection between people and technology can engage our minds, and here, design has a unique opportunity to enhance understanding and encourage participation in this cutting-edge technology. GarethtDavies GarethtDavies "My favorite thing about Mina is how it utilizes and builds on zk-SNARKs, which are a fundamental technology that could have a massive impact on the blockchain space and technology in general." Greg | DeFidog Greg | DeFidog "While Mina's technology is cutting edge, what really makes the project is the people involved, both the O(1) Labs team members and the Mina community." Raneem Hamad Account Executive, Melrose PR Raneem Hamad Account Executive, Melrose PR Kurt Hemecker COO, Mina Foundation Kurt Hemecker COO, Mina Foundation Before joining the Mina Foundation, he was with the Diem Association (formerly Libra) He was part of the early team serving initially as Head of Business Development, he later transitioned to run HR and Internal Business Operations. Prior to that, Kurt was an early employee at Zong, a mobile payments company that was acquired by PayPal in 2011 where he then served as a Senior Director leading several significant global initiatives with mobile network carriers. Kurt holds a Master’s in Computer Science from the Stevens Institute of Technology and a BS in Computer Science from Bucknell University. Nathan Holland Protocol Engineer, O(1) Labs Nathan Holland Protocol Engineer, O(1) Labs Nathan is a passionate, self-taught programmer who loves programming languages and paradigms and using high-level abstractions to create high-performance systems. Some of his favorite projects have been developing an array programming languages that targeted GPUs, an Elixir DSL for service buses, a MySql binary log deserializer, and a VR-based window manager on Linux. Most recently, Nathan was building a unique educational program to teach people how to program from the ground up using simplified programming languages and a simple virtual machine. Aidan Hyman CEO & Founder, Chainsafe Systems Aidan Hyman CEO & Founder, Chainsafe Systems Erica Kang Founder, Krypto Seoul Erica Kang Founder, Krypto Seoul Claire Kart VP of Marketing & Community, Mina Foundation Claire Kart VP of Marketing & Community, Mina Foundation Claire's career has focused on using technology to reimagine financial services and building community to increase engagement and opportunities for individuals. Prior to joining the team at O(1) Labs, she was at Ripple, where she led a number of strategic projects and served as the main liaison to the XRP community. Prior to that, Claire was an early employee at SoFi, were she was involved in the day-to-day operations across all functions of the marketing team during four years of hyper growth, including leading their member engagement strategy. Earlier in her career, she designed and mplemented a community-based micro grant program in rural India that has sponsored 300+ women to attend university. Originally from rural Pennsylvania, Claire graduated with distinction from Dartmouth College (A.B.) and holds an MBA from the University of Texas at Austin. Brandon Kase Head of Product Engineering, O(1) Labs Brandon Kase Head of Product Engineering, O(1) Labs Brandon Kase loves functional programming. He was first introduced to it while pursuing his BS in computer science at Carnegie Mellon. He has worked as a software engineer for Highlight (acquired by Pinterest), Pinterest, Facebook, and Mozilla. Brandon is excited about the safety and clarity strong statically typed functional programming techniques can bring to the software industry. He also enjoys proselytizing, so you may find him speaking at a conference near you. Akis Kattis Phd Student, NYU Courant Institute Akis Kattis Phd Student, NYU Courant Institute Akis is a PhD candidate in Computer Science at NYU's Courant Institute, where he is advised by Professors Joseph Bonneau and Yevgenyi Dodis. His research revolves around cryptography, privacy, and security, currently focusing on the privacy and scalability issues affecting cryptocurrencies. He also works on differential privacy and its applications to distributed systems and private learning. Akis holds an MSc in theoretical computer science from the University of Toronto and a BSE from Princeton University. Joon Kim General Counsel, Mina Foundation Joon Kim General Counsel, Mina Foundation Prior to joining O(1) Labs, Joon Kim served as the general counsel of Terra, which is a blockchain technology company focused on algorithmic stablecoins with primary operations in Asia. Before that, he was Vice President and Associate General Counsel at Lightyear Capital, a private equity firm based in New York City. He also served as Assistant General Counsel and Vice President at Goldman Sachs for three years, advising its asset management division. He started his career at international law firms, including Kirkland & Ellis LLP. He attended Cornell Law School and New York University. He is admitted to practice law in the state of New York. Deepthi Kumar Protocol Engineer, O(1) Labs Deepthi Kumar Protocol Engineer, O(1) Labs Deepthi is a functional programming enthusiast and software engineer. In her recently completed master's work, Deepthi designed GitQL, a novel embedded DSL for querying textual changes in software repositories. Her interests span programming languages and program analysis. Deepthi holds an MS in computer science from Oregon State University and a BE from Visvesvaraya Technological University. Kunkomu Kunkomu "When I started, I wasn't treated like a noob, but was met with motivation and helping hands. The community is more than welcoming and happy to help anyone from all levels of expertise." Sherry Lin Director, Digital Marketing, Mina Foundation Sherry Lin Director, Digital Marketing, Mina Foundation Sherry is a marketing and communications professional who enjoys telling stories that resonate. Her previous experiences have been in the hardware (semiconductor) space, but she is really interested in how blockchain can solve problems by disrupting the status quo. She is excited to work on developing blockchain technology that will open up more opportunities to more people. Sherry holds a BA in Communications/International Studies from Northwestern University. Joseandro Luiz Engineering Manager Joseandro Luiz Engineering Manager I started exploring blockchains part-time in 2014. In 2015, I got into working with distributed P2P IoT distributed systems, and finally in 2021 I joined O(1) Labs as a full-time EM. Zaki Manian Principal Co-Founder, Iqlusion Zaki Manian Principal Co-Founder, Iqlusion Zaki Manian wears many hats in the blockspace. Zaki is an active contributor to Cosmos and related protocols. He was a founding team member at Cosmos, and is an expert in cryptography and distributed systems. Zaki is excited about extending access and availability of secure computing to as many people as possible. Zaki has been active in the blockchain space since 2013. Martin Minkov Product Engineer, O(1) Labs Martin Minkov Product Engineer, O(1) Labs Martin is an avid programming and technology enthusiest. He started with O(1) Labs as an intern and has since been focused on making applications that help enable Mina to grow and develop. Martin enjoys working with new technologies and learning as much as he can about the ever growing blockchain industry. Richie Munro Community Manager, Mina Foundation Richie Munro Community Manager, Mina Foundation Having being involved in the blockchain sector for 5 years hands on, I imagine no other area or industry to work in. The online movement by projects and individuals only continues to grow. I found Mina and the team to be the most appealing, constructive and positive. Helping towards the growth and education of zk-SNARKS within the MINA ecosystem and beyond. niuniu | Bit Cat niuniu | Bit Cat "Running a Mina node doesn't have a high barrier to entry - you don't need too technical of a background to start and many people can just start in 10 minutes from the docs provided." Crystal Pham Community Operations Generalist, Mina Foundation Crystal Pham Community Operations Generalist, Mina Foundation Equipped with a Bachelor's degree in Psychology and English, along with an MBA, Crystal is enthusiastically poised to contribute significantly to the Mina Foundation and its community. The field of blockchain was like entering a new world for her exposing her to the multitude of dimensions to uncover and explore. Steven Platt Infrastructure Engineer Steven Platt Infrastructure Engineer Hi, I'm Steven, but you can call me telecomsteve. I am an infrastructure engineer and researcher with 15 years experience in network protocols. My research focuses are blockchain, cryptocurrency, and peer-to-peer networks. My website is https://telecomsteve.com. Anaïs Querol Junior Cryptography Engineer Anaïs Querol Junior Cryptography Engineer Anaïs is a computer scientist, specializing in cryptography. She is very interested in communicating complex notions such as zero knowledge. She is currently a PhD candidate at the IMDEA Software Institute in Madrid. Before that, she was a consultant at QED-it Systems in Tel Aviv. She completed her MSc at Paris Diderot University and received her BSc from the Technical University of Madrid. She likes crafting and ice skating. Aneesha Raines Engineering Manager, O(1) Labs Aneesha Raines Engineering Manager, O(1) Labs Aneesha's career in software engineering has spanned a wide range of technology companies from biotech startup to big enterprise. She has an MSE in computer engineering from the University of Michigan and most recently came from an identity company as an Engineering Manager. Her primary background is in QA, so believes in delivering high quality, scalable and maintainable software. She loves team building and working with individuals to achieve their goals. João Santos Reis OCaml Software Engineer João Santos Reis OCaml Software Engineer Geek by nature, so I enjoy a bit of everything from tech, games, movies, and series. That includes being a functional programming engineer at a web3 company! Gregg Reynolds Independent Software Developer Gregg Reynolds Independent Software Developer John Robinson Community Operations Manager, Mina Foundation John Robinson Community Operations Manager, Mina Foundation I’m fortunate to have had the opportunity to work in a variety of fields and in different countries and cultures. Throughout these experiences I have always found myself gravitating towards areas where I can work with many kinds of people to accomplish ambitious goals. Discovering the online world of open-source software, cryptocurrency and blockchain was like arriving on a new planet for me. So alien, and yet so fundamentally the same. With having such a great number of facets to explore and experiment with I think this will keep me busy for a long time to come! Andrea Rodriguez Social Media & Content Manager, Mina Foundation Andrea Rodriguez Social Media & Content Manager, Mina Foundation Andrea graduated from the University of Florida with a Master in International Business and a BS in Marketing and minor in Innovation. She then went on to work as marketing manager for a technology-based golf venue, Topgolf. During her time at Topgolf she began to grow an interest in blockchain technologies as she helped her family grow their crypto mining project based in her hometown, Caracas, Venezuela. Now Andrea looks forward to making meaningful contributions in the blockchain era by being part of the O(1) Labs team, especially in regards to web privacy. Nacera Rodstein Operations Associate, O(1) Labs Nacera Rodstein Operations Associate, O(1) Labs Nacera has had a career spanning startups, medium sized companies, and corporations. After earning her BS and MS from IAE in Lille, France, Nacera moved to San Francisco. Over the next decade, she worked with Bleacher Report (through growth from 10 to 60 employees and an acquisition by Turner), Mokum Solutions, Sephora, Venture Beat, AMSI, Oracle, and a software sales business which she helped start up and scale. Anna Rose Zero-Knowledge Validator Co-Founder, Zeroknowledge Podcast Co-Host Anna Rose Zero-Knowledge Validator Co-Founder, Zeroknowledge Podcast Co-Host Matthew Ryan Protocol Engineer, O(1) Labs Matthew Ryan Protocol Engineer, O(1) Labs Matthew Ryan is a self-taught programmer with a strong interest in computer-aided theorem proving, formal program verification, and functional programming. He has been involved with several open-source projects, and passionately believes in the open-source philosophy. He has a BSc in Mathematics from the University of Warwick, U.K., where he studied cryptography. Amit Sahai Director, Center for Encrypted Functionalities Amit Sahai Director, Center for Encrypted Functionalities Amit Sahai is a Professor of Computer Science at UCLA, Fellow of the ACM, and Fellow of the IACR. His research interests are in security, cryptography, and theoretical computer science. He is the co-inventor of Attribute-Based Encryption, Functional Encryption, Indistinguishability Obfuscation, author of over 100 technical research papers, and invited speaker at institutions such as MIT, Stanford, and Berkeley. He has also received honors from the Alfred P. Sloan Foundation, Okawa Foundation, Xerox Foundation, Google Research, the BSF, and the ACM. He earned his PhD in Computer Science from MIT and served on the faculty at Princeton before joining UCLA in 2004. Luz Sajoux People Operations Generalist Luz Sajoux People Operations Generalist Luz is passionate about building environments, processes and tools that empower people to succeed in their roles. Before joining MINA, she worked in IOHK, RedHat, and IBM. Ryan Sears Founder, Cali Dog Security Ryan Sears Founder, Cali Dog Security Evan Shapiro CEO, Mina Foundation Evan Shapiro CEO, Mina Foundation Evan Shapiro graduated from Carnegie Mellon with a BS in computer science. He then obtained his research MS while working in the CMU Personal Robotics Lab, where he did research for the HERB robotics platform. He has also worked as a software engineer for Mozilla. Joseph Spadavecchia Cryptography Engineer, O(1) Labs Joseph Spadavecchia Cryptography Engineer, O(1) Labs Joseph loves cryptography, decentralized systems and security. Most recently, he was a principal software engineer at Akamai developing Secure Web Gateway technology. Prior to that, he developed a MITM https proxy for Bloxx Ltd and studied for a PhD in Computer Science at the University of Edinburgh, specializing in decentralized P2P systems. He also contributed as a research assistant at the File Systems and Storage Lab, SUNY Stonybrook and holds a BS in Computer Science from NYU Tandon School of Engineering. Paul Steckler Protocol Engineer, O(1) Labs Paul Steckler Protocol Engineer, O(1) Labs Paul is a functional programmer and researcher. In the academic realm, he's followed his interest in PLs, type systems, and formal verification through collaborations with INRIA, the MIT PLV Group, and NICTA. He also worked on the initial implementation of Alacris, a cryptocurrency solution layered on top of existing blockchains. He holds a PhD in computer science from Northeastern University. James Strudwick Head of Business Development James Strudwick Head of Business Development James has worked in the blockchain space since 2016, occupying roles such as Head of Business Development for Alpaca Finance, a Decentralized Finance protocol, and as Director of Business Development at Tezos, a major Layer 1 blockchain. James holds an MBA from INSEAD and, prior to working in crypto, he worked in the equity derivatives space in the financial markets for almost a decade. Jiawei Tang Protocol Engineer, O(1) Labs Jiawei Tang Protocol Engineer, O(1) Labs Jiawei loves writing interpreters and type checkers. He received his BS in computer science from Indiana University, and he's fascinated by categorical semantics and dependent type theory. Currently, he is implementing a toy dependently typed language called Pie. Emre Tekisalp Interim CEO, O(1) Labs Emre Tekisalp Interim CEO, O(1) Labs Emre's career has focused on bringing new economic opportunities to societies using the power of technology. Before O(1) Labs, he spent two years at Coinbase's Business Development team where he led a number of strategic programs during a period when the company grew 10x. Before Coinbase, Emre was a Product Manager at Intel's wearable devices group. Originally from Istanbul, Turkey, Emre has an MBA degree from Columbia University. Andrew Trainor Protocol Engineer, O(1) Labs Andrew Trainor Protocol Engineer, O(1) Labs Andrew is a blockchain enthusiast and technologist that has been working for crypto startups since 2016 when he received a BA in Computer Science from Boston University. Since joining O(1) Labs he has been focused on making Mina networks easier to deploy, test, and scale so that we can fulfill the promise of the world's lightest blockchain. Kili Wall Director of Media Relations, Melrose PR Kili Wall Director of Media Relations, Melrose PR Ben Ward Head of Business Operations, O(1) Labs Ben Ward Head of Business Operations, O(1) Labs Ben’s career has spanned finance, technology, and strategy. Prior to O(1) Labs, he spent four years working as a management consultant at the Boston Consulting Group (BCG) where he focused on corporate strategy for the world’s largest financial institutions. During his time at grad school, Ben worked at Kraken Digital Asset Exchange in the Strategy team. Originally from Sydney, Australia, Ben has an MBA degree from Stanford University, and an MPA degree from Harvard University. Kelley Weaver CEO and Founder, Melrose PR Kelley Weaver CEO and Founder, Melrose PR Leila Wolf Account Executive, Melrose PR Leila Wolf Account Executive, Melrose PR Regina Wong Developer Relations Engineer Regina Wong Developer Relations Engineer Regina is the developer relations engineer at O(1) Labs. Prior to O(1) Labs, she worked at Zeplin, Coinbase, and her own startup. Christine Yip Head of Community, Mina Foundation Christine Yip Head of Community, Mina Foundation Christine is an early contributor in the community with broad experience in multidisciplinary engineering teams. She previously worked for global firms in the US, The Netherlands, Czech Republic, and Hong Kong. She believes that we can take more ownership of our lives than ever before by using blockchain technology. She supports the community and Mina by combining their efforts in achieving a decentralized future. Luke Youngblood Founder & CEO, Blockscale Luke Youngblood Founder & CEO, Blockscale Luke is the founder and CEO of Blockscale, an early pioneer of blockchain and crypto technologies. In 2018, he helped launch the Tezos network by creating the staking infrastructure for the Tezos Foundation, becoming the largest decentralized proof of stake validator in the world overnight. Since then, Blockscale has successfully generated over 20 million XTZ in baking rewards and operates highly available API endpoints for Tezos that are used by major wallet providers. Luke currently works as a staff software engineer at Coinbase Custody, where he launched Tezos Staking Rewards. 支持者 支持Mina协议 Alan Howard Andrew Keys Brevan Howard Charlie Noyes Ed Roman Elad Gil Finality Capital Partners Fred Ehrsam Jack Herrick Linda Xie Work with Mina See all JOB OPENINGS / Remote / Mina Foundation Positions at Mina Foundation Read more JOB OPENINGS / Remote / O(1) Labs Positions at O(1) Labs Read more JOB OPENINGS / Various / =nil; Foundation Positions at =nil; Foundation Read more JOB OPENINGS / Various / Viable Systems Positions at Viable Systems Read more GET UPDATES Mina is growing fast! Subscribe to stay updated Email(Required) SUBMIT Submit CONNECT Join the conversation. 开发者 入门手册 运行节点 技术文档 Mina 领航者计划 资源 关于技术 入门手册 技术白皮书 经济白皮书 社交媒体 生态 社区 生态资助金项目 加入 Mina 团队 社区博客 Mina Foundation 帮助和支持 Discord Mina Research Github Code of Conduct Privacy Policy Terms of Service © 2024 Top "*" indicates required fields Subscribe to the Mina newsletter to be notified about the latest updatesEmail* What are you interested in? (Select all that apply)* Building dapps Creating tooling and other technical resources Running a node Helping to spread the word (eg. through social media, meetups, creating content, etc.) Staying up to date about Mina Submit Comments这个字段是用于验证目的,应该保持不变。 Submit x Are you a developer wanting to build on Mina? Join the mailing list to get started on your zkApp journey today. You’ll receive a deep dive on Mina, what you need to know to build a zkApp and a guide to all the resources available to you. We’ll also keep you updated on the latest developer grants and programs.   Email(Required) Discord ID Submit Submit x

<

Home | Mina Protocol

me | Mina Protocol Sign up to be notified when zkIgnite, Cohort 3 starts. 立即注册 Change Region English 简体中文 Русский Türkçe 한국어 开发者 入门手册 技术文档 Mina 领航者计划 关于 关于米娜 路线图 用例 与米娜一起工作 技术 米娜的工作原理 zkApps 节点运算符 社区 米娜社区 生态资助金项目 博客 订阅时事通讯 开发者 入门手册 技术文档 Mina 领航者计划 关于 关于米娜 路线图 用例 与米娜一起工作 技术 米娜的工作原理 zkApps 节点运算符 社区 米娜社区 生态资助金项目 博客 Change Region English 简体中文 Русский Türkçe 日本語 한국어 订阅时事通讯 Mina is building the privacy and security layer for web3 with zero knowledge proofs. Mina正致力于建立现实世界和加密货币之间的隐私保护网关,提供基础设施,确保未来我们所有人都能享有安全和民主。 Build on Mina with zkApps, smart contracts powered by zero knowledge. Learn about the technology and stay up to date on upcoming programs and grants. SIGN UP Mina Protocol Multi-Year Roadmap State of Zero Knowledge 2022 Survey reveals over 40% of respondents find ZKPs will be highly important in the Metaverse and Web3. Read the Report Mina区块链 22KB1 恒定大小 其他区块链 300GB2 大小递增 01 Own Your Data 跟其他依赖于中间商运行节点的重协议相比,Mina很轻,任何人都可以快速的进行点对点连接、同步和验证区块链。它建立在一个恒定大小的加密证明之上,即便扩展到数百万用户,也能始终保持可访问性。 探索该技术 02 Access Mina from Other Chains 通过使用Mina,任何同步链的人也能像验证完整节点一样验证交易。Mina的设计意味着任何参与者都可以参与权益证明共识,获得强大的抗审查能力,并保护区块链。 运行节点 03 Connecting Crypto to the Real World 如今,人们为了融入数字时代,不得不将他们的个人数据供互联网巨头们消费使用。但是,Mina推出的zkApps,一种基于SNARK的去中心化应用程序,使得用户完全掌控个人数据的验证和分享,而不仅仅是数据本身,甚至是分享给竞争对手。利用线下的逻辑、数据计算和线上验证,zkApps具有易扩展、高性能计算、高性价比等特点。 了解更多 04 Every Participant is a Full Node 其他的区块链项目与互联网没有交互,限制了其应用的范围和能力。但是,Mina推出的zkApps能通过私有的网关访问任何网站,并在线上使用经过验证的真实世界的数据。因此,在不损害隐私的情况下,开发者们能利用真实世界的信息进行分析、决策,更好地改变我们的生活和工作。 05 A Global Community 其他区块链由强大的生态系统中介机构运营。但是,Mina是由每一位参与者提供动力的,并且区块生产者的数量没有上限。具备强大包容能力的Mina社区,愿意联合世界各地每一位热衷于去中心化区块链的参与者。 实际上,在过去两年中启动的所有项目中,我们都是规模最大、最活跃的社区之一。 加入我们的社区 Mina Announcements SEE ALL ANNOUNCEMENTS ANNOUNCEMENT / 2024-03-01 / MinaExplorer Discontinuing its APIs The Mina ecosystem is lucky to have several blockchain […] Read more ANNOUNCEMENT / 2024-01-23 / PunkPoll Unveils Censorship-Resistant Voting and Survey Platform Verified on Mina Protocol Read more ANNOUNCEMENT / 2023-12-22 / zkIgnite, Cohort 3 – What Will You Build? Read more ANNOUNCEMENT / 2023-12-19 / Letter to the Community Read more In the News SEE ALL PRESS PRESS / 2023-06-06 / Coindesk Korea “Zero-knowledge proof, the key to the next step forward in blockchain” Mina Foundation Head of Product, Brian McKenna, speaks to Coindesk Korea about why zero knowledge and Mina are key to advancing blockchain to the next level. Read more PRESS / 2023-04-19 / Viewpoint Docuseries Viewpoint with Dennis Quaid: Web 3.0 and Mina Protocol Read more PRESS / 2023-04-07 / FXStreet MATIC and Mina Protocol Ride the ZK Hype Ahead of Major Ethereum Upgrade Read more PRESS / 2023-03-22 / Forbes Zero Knowledge, The Crypto Privacy Research That’s Breaking Out Of Blockchain Read more GET UPDATES Mina is growing fast! Subscribe to stay updated Email(Required) SUBMIT Submit CONNECT Join the conversation. 开发者 入门手册 运行节点 技术文档 Mina 领航者计划 资源 关于技术 入门手册 技术白皮书 经济白皮书 社交媒体 生态 社区 生态资助金项目 加入 Mina 团队 社区博客 Mina Foundation 帮助和支持 Discord Mina Research Github Code of Conduct Privacy Policy Terms of Service © 2024 Top "*" indicates required fields Subscribe to the Mina newsletter to be notified about the latest updatesEmail* What are you interested in? (Select all that apply)* Building dapps Creating tooling and other technical resources Running a node Helping to spread the word (eg. through social media, meetups, creating content, etc.) Staying up to date about Mina Submit Email这个字段是用于验证目的,应该保持不变。 Submit x Are you a developer wanting to build on Mina? Join the mailing list to get started on your zkApp journey today. You’ll receive a deep dive on Mina, what you need to know to build a zkApp and a guide to all the resources available to you. We’ll also keep you updated on the latest developer grants and programs.   Email(Required) Discord ID Submit Submit x

<

Mina Protocol - 轻量而强大 | 登链社区 | 区块链技术社区

Mina Protocol - 轻量而强大 | 登链社区 | 区块链技术社区

文章

问答

讲堂

专栏

集市

更多

提问

发表文章

活动

文档

招聘

发现

Toggle navigation

首页 (current)

文章

问答

讲堂

专栏

活动

招聘

文档

集市

搜索

登录/注册

Mina Protocol - 轻量而强大

MinaFans

更新于 2022-04-01 11:30

阅读 3993

本文将探讨 Mina 的设计选择,以及关键参与者如何使其在原生代币 MINA 的支持下作为一个简洁的区块链工作。

> link: [https://messari.io/article/mina...](https://messari.io/article/mina-protocol-small-but-mighty?utm_source=twitter_kunalgoel&utm_medium=organic_social&utm_campaign=mina_protocol_small_but_mighty)

> 作者 :Kunal Goel

* 传统区块链在数据方面,面临着存储不断增长的问题,效率低下。这种状态的膨胀化会对网络的去中心化产生负面影响,因为能够参与链验证的用户越来越少。

* Mina 协议是解决状态膨胀问题的新一代 layer-1 区块链。借助 zk-SNARK 的强大功能,Mina 区块链保持约为 11 kB 的固定大小。除了去中心化之外,zk-SNARK 还使 Mina 比其他链更具隐私性和更高效。

* 其他新一代区块链已针对区块链不可能三角中的可扩展性进行了优化,但在此过程中影响了去中心化;而 Mina 优先考虑去中心化。理论上,任何智能手机或浏览器都可以在 Mina 上运行完整的节点。

* 然而,Mina 的许多开创性功能仍在开发中。产品路线图充满雄心;团队的交付能力将决定协议的成功与否。

根据区块链不可能三角,区块链的三个理想目标(可扩展性、去中心化和安全性)中的任何一个的改进都会以其他两个目标为代价。随着区块链技术多年来的进步,新一代区块链在克服不可能三角方面取得了一些成功。他们专注于可扩展性,将吞吐量提高了几个数量级,但在去中心化和安全性方面做出了各种让步。例如,Solana 的交易吞吐量是以太坊的 1,000 倍以上,但要求其验证者使用[工业级硬件](https://docs.solana.com/running-validator/validator-reqs)并承诺进行持续升级。这阻碍了去中心化,因为无法让更广大的社区参与验证。

比特币和以太坊等老一代区块链仍然受到低可扩展性的影响,因为它们优先考虑去中心化。然而即便如此,这些区块链的去中心化也面临压力,因为它们的大小现在已经超过数百 GB,这无疑提高了运行完整节点的要求。因此责任就留给了有能力为去中心化的良好事业花费大量资源的爱好者。在文章“[区块链可扩展性的限制](https://vitalik.ca/general/2021/05/23/scaling.html)”中,Vitalik Buterin 警告不要大幅增加区块链的参数以满足区块空间的需求,因为如果普通用户无法运行节点,则有可能会导致“极端中心化”。

![](https://img.learnblockchain.cn/2022/04/01/FO-A1s9WYAITLmp.jpeg)

## Mina Protocol

Mina Protocol 目前作为支付链,于 2022 年 3 月 23 日达成了主网启动一周年。Mina 的智能合约称为 zkApp,已列入 2022 年第二季度的产品路线图。本月早些时候,Mina 从三箭资本和 FTX Ventures 等大型加密投资者筹集了 9200 万美元,推动其实现为 web3 构建隐私安全层的愿景。

虽然最近其他的 layer 1 已经最大限度地提高了可扩展性,但 Mina 协议选择了最大限度地去中心化。作为一个简洁的区块链,Mina 使用递归加密技术,将可验证的区块链限制在约为 11kB 的固定大小,而像 Solana 这样的 layer 1 则为 PB 级别 (1PB = 1012 KB)。与其他随着区块添加而增长的 layer 1 区块链不同,Mina 能够通过使用一系列自引用的加密证明来保持固定大小。可以将 Mina 的递归密码学过程视为拍摄区块链的照片。每当添加一个新区块,就会拍摄一张包含现有区块链和新区块的照片,将区块链的大小限制为一张照片,同时保留从创世以来的所有信息。

通过上述介绍,本报告深入探讨了困扰传统区块链的状态膨胀问题以及 Mina 如何使用零知识证明来解决该问题,且如何在此过程中提供更具隐私性、去中心化和高效的区块链。我们将探讨 Mina 的设计选择,以及关键参与者如何使其在原生代币 MINA 的支持下作为一个简洁的区块链工作。最后,本报告讨论了 Mina 的未来发展、产品路线图以及为实现其崇高愿景而正在建设的团队。

## 状态膨胀

> “区块链和状态膨胀将永远增加同步完整节点的成本,直到大多数用户无法进行验证,且降级为受信任 (trusted) 系统。这就是为什么一个合理的固定区块大小上限如此重要的原因。”

> ——[Hasu](https://twitter.com/hasufl/status/1280176940771676163),Flashbots 首席战略

状态膨胀是由于存储区块链所产生的数据、交易、账户、代币、合约和其他信息的不断增长而形成的问题。为了以可信任的方式准确地到达当前状态,每个完整的区块链节点都必须存储每个用户地址、交易的每个代币、铸造的每个 NFT 以及来自创世区块的所有交易历史记录。

虽然老一代区块链由于悠久的历史而处于膨胀的状态,但新一代区块链由于其高吞吐量也面临着同样的问题。例如,以太坊最受欢迎的客户端 Geth 的状态大小约为 600 GB,每周约增加 11 GB。虽然理论上它仍可以在用户级硬件上运行,但随着状态大小的不断增加,未来可能无法实现这一点。以太坊计划通过后续的一组“[The Purge](https://twitter.com/VitalikButerin/status/1466411377107558402?s=20)”升级解决状态大小问题。另一方面,Solana 作为高性能区块链,以每秒 1 GB 或每年 4 PB 的速度创建数据。它最初计划使用一组“[Archivers](https://medium.com/solana-labs/replicators-solanas-solution-to-petabytes-of-blockchain-data-storage-ef79db053fa1)”来维护交易的历史记录,节点只存储近几天的数据。后来,Solana 放弃了这个项目,计划使用 [Arweave](https://medium.com/solana-labs/announcing-the-solar-bridge-c90718a49fa2) 的 permaweb 来存储账本数据。然而,Arweave 目前只能保持 52 TB 的数据,因此需要大幅扩展以满足 Solana 的需求。Solana 现在没有去中心化的解决方案来存储交易历史,目前使用 [Google 的 Big Table](https://docs.solana.com/implemented-proposals/rpc-transaction-history) 作为存储解决方案。

Mina 解决了这个问题。

Mina 通过递归 zk-SNARK 的密码学技术,实现保持轻量且固定的区块链大小。zk-SNARK 的全称是零知识简洁非交互式知识证明。

## 递归 zk-SNARK

### 零知识证明 (zk)

零知识证明是一种证明方式,验证者除了得知“某声明是真的”以外不会得知其他任何信息。通过一个具体的例子更容易理解。你可以想象,在一个游戏节目中,有一个奖品藏在你面前的一千扇门的其中一扇门后面。要找到奖品,最好的策略是按顺序打开大门。如果你想向别人证明你知道奖品在哪里,你可以告诉他们门牌号码,他们可以自己验证。这可以帮助你简单地证明你知道答案,但关键在于,这种方法使你向验证者泄漏了解决方案。不过,如果你在将他们带到奖品门口之前,把他们的眼睛蒙上,并旋转他们,你仍然可以证明你知道奖品在哪里,也不需要泄漏门号。这就是一个零知识证明。它可以确认你(证明者)知道解决方案,但不会将其泄露给验证者。值得注意的是,工作也存在不对称性。证明者为找到答案所做的工作量远远超过验证者为检查答案是否正确所做的工作量。证明者必须搜索每一扇门,直到找到正确的一扇门,而验证者只需要检查一扇门。

### 简洁非交互式知识证明(SNARK)

SNARK 是一种零知识证明。简洁是因为它们很小且易于验证。Mina 上的 SNARK 证明约为 7 kB,验证它只需要 200 毫秒。

虽然一些 zkp(零知识证明)可能需要证明者和验证者之间来回交换信息,但非交互式证明无需与证明者进行更多交互,由验证者进行验证。

**Arguments** (论证) 是证明 (proof) 的一种形式。在密码学中,证明可以由有效的语句生成,而过高的计算能力可能会生成无效的论证证明。然而,这只是理论上的差异,就我们的目的而言,我们可以将论证视为与证明相同。

**Knowledge** (知识) 是指证明者事实上知道答案。在我们举的例子中,证明者不仅证明奖品存在,而且还证明他们知道奖品在哪扇门后面。

因此,SNARK 是轻量的、易于验证的知识证明,不需要证明者和验证者之间的来回通信。

### 递归

最后,Mina 使用了一种叫作 Pickles 的 zk-SNARK,它可以递归地引用自身来创建证明的证明,从而保持区块链的大小固定。与其他 SNARK 不同,Pickles 的另一个特性是它[不需要](https://minaprotocol.com/blog/meet-pickles-snark-enabling-smart-contracts-on-coda-protocol)受信任的[设置](https://vitalik.ca/general/2022/03/14/trustedsetup.html)。受信任的设置被认为不太理想的,因为未来的用户必须相信初始设置是在适当的控制下公平执行的。

![](https://img.learnblockchain.cn/2022/04/01/FO3S9XoaUAIylsz.png)

## Mina 和 zk-SNARK

利用 zk-SNARK,Mina 可以维持一个保持较小且大小固定的区块链。每当添加一个新区块,必须创建新 zk-SNARK,其中包含前一个区块的 zk-SNARK,以证明其有效性。只有当区块数据正确时才能创建此 SNARK。因此,SNARK 证明当前区块是有效的,并引用前一个块的 SNARK 来证明它是有效的。通过这种方式,只需验证当前 SNARK 即可确认区块链的整个状态,因为它从创世区块开始就必须是在一系列有效的 SNARK 之上生成的。

然而,一个加密证明不足以运行一个完整的节点。仅凭证明不能让节点执行其基本功能,因为它不提供清晰的信息,例如账户余额。所以除此以外,一个节点还需要四条信息才能发挥作用。第一个是包含哈希数据结构的协议状态,包括账本。第二个是 SNARK 证明和协议状态的验证密钥。其次,节点还必须存储账户信息和与协议匹配的 [Merkle](https://en.wikipedia.org/wiki/Merkle_tree) 路径,以可靠 (trustless) 地确保账户信息正确并且属于当前协议状态。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage0.png)

虽然 Mina 的宣传文章声称区块链的大小约为 22KB,但随着技术的改进,其大小将仅为 11KB。

### 11 KB,这是真的吗?

好吧,不完全是,目前也不是。由于此类节点不具备完整的交易历史所以无法参与共识,因此被称为非共识节点。 然而,它比传统区块链的轻节点更强大,因为它在没有信任假设的情况下运行。 它可以独立验证区块链数据,提取其账户余额,并广播交易。 在这方面,它类似于比特币或以太坊上的完整非挖矿节点。还有一点需要注意的是,非共识节点目前还没有上线; 它们是由支持 Mina 协议的团队开发的。

![FO3SdQsaIAcCsQN](https://img.learnblockchain.cn/2022/04/01/FO3SdQsaIAcCsQN.png)

### zk-SNARK 的优势

Mina 对 zk-SNARK 技术的利用使其成为一个引人注目的选择方案,与传统区块链相比具有独特的优势。

### 去中心化的改进

​​运行一个非共识节点只需要很少的磁盘空间和计算能力。虽然其他区块链受到状态膨胀的影响,可能需要强大的工业级硬件来运行完整节点,但 Mina 的非共识节点将可以在智能手机或浏览器上运行。每个用户都可以运行自己的节点,从而显著地改善去中心化。超越自我监管之外的区块链理想是自我验证,Mina 是唯一能够实现自我验证的区块链。

![](https://img.learnblockchain.cn/2022/04/01/FO3SIKgaMAIQn9L.png)

### 工作不对称性

在传统区块链中,每个节点必须独立执行每笔交易,导致计算资源浪费和交易成本增加。验证交易的零知识证明比执行交易本身占用的资源要少得多。这是以太坊 zk-rollups 的前提,Buterin 认为这是扩展以太坊升级过程中最关键的部分。然而,Mina 在其协议设计中加入了零知识证明。

### 隐私性

零知识证明不泄露任何不必要的信息,从而保证隐私性。Mina 区块链的零知识证明仅证明状态有效,而不显示交互账户。即使是 Mina 的共识节点,也仅保留最后 290 个区块的历史记录。

### 共识

Mina 采用的共识机制是 Ouroboros Samasika ,这是 Cardano 共识机制 Ouroboros 的改进版。Ouroboros Samasika 具有不保留完整交易历史的简洁区块链的附加属性。与其他 PoS 链一样,被选为区块生产者的概率取决于节点相对于总质押的 Mina 质押数量。和 Cardano 一样,Mina 不要求节点锁定资金,网络也不罚没资金。网络停止向离线或有不良行为的节点分发奖励。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage01.png)

网络无法得知且不会宣布下一个区块生产者,且可能会有多个区块生产者符合条件。这种模糊性增加了协议的安全性,因为它创建了一种针对区块生产者拒绝服务攻击的自然防御。但是,它的缺点是有时会产生短期分叉。如果多个区块生产者产生了不同的有效区块,则下一个区块生产者遵循标准共识规则,建立在最长链之上。如果只有相同长度的链可用,则区块生产者会在第一次看到的链之上构建,或者在另一个具有更高可验证随机函数输出时替换它。

这种设计选择也意味着 Mina 具有概率终局性。凭借 90% 的诚实质押和 4 分钟的出块时间,Mina 在 15 个区块(即 60 分钟)内达到 99.9% 的终局性。这比 Solana 和 Avalanche 等其他一些需要几秒钟来完成交易的新一代区块链要长得多。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage02.png)

## 交易过程

Mina 的交易执行过程中有两个重要的参与者:区块生产者和 SNARKer。区块生产者类似于其他 PoS 链上的验证人。他们被随机选择出来,根据他们质押份额占总质押份额的百分比来产生一个区块。SNARKer / SNARK worker 负责生成区块链单个交易的 SNARK 证明。为了更好地理解他们的角色,让我们看看 Mina 上的交易生命周期。

1. 首先,为了执行交易,用户将交易与他们愿意支付的手续费信息一起广播到网络,这些费用被收集在交易池中。

2. SNARKer 独立地并持续不断地提供这些交易的 SNARK 证明,以便将其打包在区块中。

3. 当一个区块生产者被选中时,他们会从交易池的可用交易中将手续费最高的最有利交易排入队列。然而,区块生产者在添加到队列中时,还必须添加相同数量的交易 SNARK 证明。他们可以自己生成 SNARK 证明,也可以从 SNARKer 那里购买 SNARK 证明。

4. SNARKer 相互竞争,以最低的成本提供 SNARK 证明。根据 Mina Explorer 提供的数据,在过去的 100 个区块中,所有 SNARK 证明都是由 SNARKer 免费提供的。 SNARKer 未来可能会受到类似于挖矿的协议激励补贴,称为 SNARK 挖矿。

5. 然后,区块生产者更新队列,队列保持不变大小,因为新的 还没有被 SNARKed 交易数量等于被 SNARKed 后删除的交易数量。

6. 然后,区块生产者将进行了 SNARK 的交易打包在区块中,并更新协议状态的 zk-SNARK 证明。

7. 新区块和 SNARK 证明通过网络传播,并得到其他节点的确认。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage03.png)

\- Source: Mina Protocol Whitepaper -

## 审查阻力

Mina 使用 fee market,与比特币类似,每笔交易都在交易池中等待,直到区块生产者添加。 通常,用户可以通过支付足够高的手续费或等待足够长的时间来确保区块生产者将他们的交易添加到区块链中。

需要审查的交易,则必须是所有 SNARKer 都拒绝提供 SNARK 证明,或者必须是所有区块生产者都拒绝将 SNARKed 后的交易添加到区块中。在 Ouroboros 下,我们可以推定网络是去中心化的,并且区块生产者之间没有串通。

所有 SNARKer 之间的串通是非常困难的。首先,任何人都没有进入 SNARK 交易的障碍。 由于 SNARKing 的成本很小,任何人都可以制作 SNARK 交易证明并赚取 SNARKing 费用。 即使手续费很低,区块生产者也能够将 SNARK 后的交易打包在一个区块中,从而获利。

## 网络统计

Mina 是一个相对较新的区块链,具有独特的架构。因此,有关网络及其采用的可用数据量有限。我们从当前可用的资源管理器和仪表板中汇总了以下信息。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage04.png)

Mina 的理论吞吐量是每秒一个交易。 显然,Mina 不会在吞吐量方面与其他新一代区块链竞争。Mina 不是只比较区块链的吞吐量数字,而是试图在更全面的[每单位去中心化的可拓展性](https://minaprotocol.com/blog/solving-the-scalability-trilemma) (scale per unit of decentralization /ScaDe) 上进行竞争。ScaDe 前沿是区块链不可能三角的推论,它表明区块链的吞吐量与完整节点的数量成反比。由于 Mina 旨在最大限度地实现去中心化,并且对节点数量没有理论上的限制,因此它在 ScaDe 边界之外运作。

## MINA 代币

作为区块链的原生代币,MINA 用于支付交易手续费,并通过区块奖励激励共识参与。目前,无论是在链上还是在论坛上,[治理过程](https://github.com/MinaProtocol/MIPs)都没有基于代币的投票,不过相关计划已提出。

MINA 是一种通胀货币,初始通胀率为 12%,主网启动四年后将降至 7%。通货膨胀是固定的,质押收益率随着质押参与率的变化而变化。虽然通货膨胀可能看起来很高,但有助于保持链的安全,因为它鼓励参与质押。

有多种方法可以查看 MINA 的供应量,例如不包括时间锁定代币的循环供应量,或包含锁定代币的完全稀释供应量。最简单和最准确的方法是通过质押供应进行查看。MINA 的初始总供应量为 10 亿个代币,其中 8.06 亿个在主网发布时可用于质押。这些代币中的大多数都被锁定以供出售,但可以将其进行质押,从而获得区块奖励。随着时间的推移,剩余的 1.94 亿个初始供应代币将以超额奖励、SNARK 挖矿奖励和生态资助的形式分发给社区。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage05.png)

\- 来源:[Mina Protocol](https://minaprotocol.com/blog/mina-token-distribution-and-supply) -

Mina 生态已累计筹集到 1.4 亿美元融资,最近一次是在 2022 年 3 月并筹集到 9200 万美元。Mina 的支持者是一些最著名的加密风投基金,如 FTX Ventures、三箭资本、Paradigm、Coinbase Ventures、Polychain Capital、Electric Capital 和 Multicoin Capital。社区销售也引起了巨大的投资者兴趣,致使 Coinlist 将每位投资者的最高上限从 1,000 美元[降低到](https://coinlist.co/help/why-was-the-maximum-purchase-amount-reduced-to-500-from-1-000) 500 美元。

![](https://img.learnblockchain.cn/2022/04/01/pastedimage06.png)

### 超额奖励

最近,Looks Rare 及其质押奖励出现了崩溃。与 Mina 类似,它的内部人员持有锁定的代币,这些代币不属于流通供应的一部分,但可以质押以获得奖励。这使他们能够在主网上线后的最初几天获得很大比例的质押奖励,因为他们的持币量远高于流通供应量。著名的 Twitter KOL Cobie 在他最近题为“[激励结构](https://cobie.substack.com/p/incentives-structures?s=r)”的文章中对此进行了介绍。

Mina 通过设计更好的奖励结构避免了这种情况。在主网上线后的前 15 个月内,质押未锁定代币的用户将获得更多的区块奖励,称为超额奖励。目前,未锁定代币的质押者获得的奖励是锁定代币质押者的两倍,实现了更受社区支持的奖励分配,并避免了 Looks Rare 团队面临的争议。

### 路线图

Mina 有一个令人兴奋的产品,但 Mina 团队仍在构建其最具开创性的功能。Mina 目前仅用作具有数百个验证者的支付链。智能合约功能、非共识节点,以及可以从互联网上可靠 (trustless) 地提取数据的 zk预言机,这些都是计划在 2022 年上线的充满前景的功能。Mina 还计划开发一个在链下存储数据的 zk-Rollup,扩展其吞吐量。

![](https://img.learnblockchain.cn/2022/04/01/FO3UL_oaAAMRDis.png)

## 团队与合作伙伴

有了基本产品和雄心勃勃的路线图,贡献团队成为 Mina 成功的最关键因素。

Mina 背后的核心团队是 [O(1) Labs](https://www.o1labs.org/),该团队正在为 Mina 开发智能合约和 zk 预言机。Mina 基金会的现任首席执行官 [Evan Shapiro](https://www.linkedin.com/in/evan-shapiro-451731176/) 曾是 O (1) Labs 的首席执行官。Evan 毕业于卡内基梅隆大学,获得计算机科学硕士学位,并于2017年创建了O(1) Labs。

O(1) Labs 的临时 CEO 是 [Emre Tekişalp](https://www.linkedin.com/in/emretekisalp/),他曾在 Coinbase 担任业务发展经理,并拥有哥伦比亚商学院的 MBA 学位。[Izaak Meckler](https://www.linkedin.com/in/barfoo/) 是 O(1) Labs 的 CTO,目前正在攻读加州大学伯克利分校密码学专业的博士学位。

[\=nil; Foundation](https://mobile.twitter.com/nil_foundation) 正在搭建从 Mina 到以太坊和其他 EVM 链的桥。2021 年 9 月,以太坊基金会和 Mina 基金会向其提供了 120 万美元的资金,用于建造这座跨链桥。

[Chainsafe](https://chainsafe.io/) 正在用 Rust 改写 Mina,并为基于浏览器的节点构建 MVP (Minimum Viable Product)。

[Polygon](https://polygon.technology/) 和 Mina [达成合作](https://minaprotocol.com/blog/polygon-and-mina-foundation-to-enable-privacy-preserving-applications-on-polygon),正在 Polygon 的 PoS 链上构建对 Mina 的支持,开发者将能够在 Polygon 上构建利用 Mina zk-SNARK 优势的 dapp。

## 结论

虽然世界的关注重点在平台战和以太坊的扩展解决方案,但 Mina 一直在构建一个充满前景的解决方案,致力于在不影响去中心化的前提下发挥零知识技术的潜力。凭借强大的团队、令人注目的合作伙伴和支持者以及新的资金储备,Mina 开始兑现其雄心勃勃的路线图。Mina 的贡献者可以从 Solana、Avalanche 和 Terra 等替代平台链在 2021 年取得的成就中汲取灵感。谁将在此领域胜出尚无定数,如果 Mina 能够构建出强大的产品,将会吸引大量用户和投资者前来。

*所有内容均由作者独立制作,不一定反映 Messari, Inc. 的意见。作者可能持有本报告中指定的加密货币,每位作者均受 Messari 行为准则和内幕交易政策的约束。此外,员工必须披露其持有的资产,该资产每月更新并在[此处](https://messari.io/article/messari-employee-holdings-policy-and-disclosures)发布。本报告仅供参考。它不作为投资建议。 在做出任何投资决定之前,你应该自行研究,并咨询独立的财务、税务或法律顾问。任何资产的过往表现并不代表未来的结果。请参阅我们的使用条款了解更多信息。*

link: https://messari.io/article/mina...

作者 :Kunal Goel

传统区块链在数据方面,面临着存储不断增长的问题,效率低下。这种状态的膨胀化会对网络的去中心化产生负面影响,因为能够参与链验证的用户越来越少。

Mina 协议是解决状态膨胀问题的新一代 layer-1 区块链。借助 zk-SNARK 的强大功能,Mina 区块链保持约为 11 kB 的固定大小。除了去中心化之外,zk-SNARK 还使 Mina 比其他链更具隐私性和更高效。

其他新一代区块链已针对区块链不可能三角中的可扩展性进行了优化,但在此过程中影响了去中心化;而 Mina 优先考虑去中心化。理论上,任何智能手机或浏览器都可以在 Mina 上运行完整的节点。

然而,Mina 的许多开创性功能仍在开发中。产品路线图充满雄心;团队的交付能力将决定协议的成功与否。

根据区块链不可能三角,区块链的三个理想目标(可扩展性、去中心化和安全性)中的任何一个的改进都会以其他两个目标为代价。随着区块链技术多年来的进步,新一代区块链在克服不可能三角方面取得了一些成功。他们专注于可扩展性,将吞吐量提高了几个数量级,但在去中心化和安全性方面做出了各种让步。例如,Solana 的交易吞吐量是以太坊的 1,000 倍以上,但要求其验证者使用工业级硬件并承诺进行持续升级。这阻碍了去中心化,因为无法让更广大的社区参与验证。

比特币和以太坊等老一代区块链仍然受到低可扩展性的影响,因为它们优先考虑去中心化。然而即便如此,这些区块链的去中心化也面临压力,因为它们的大小现在已经超过数百 GB,这无疑提高了运行完整节点的要求。因此责任就留给了有能力为去中心化的良好事业花费大量资源的爱好者。在文章“区块链可扩展性的限制”中,Vitalik Buterin 警告不要大幅增加区块链的参数以满足区块空间的需求,因为如果普通用户无法运行节点,则有可能会导致“极端中心化”。

Mina Protocol

Mina Protocol 目前作为支付链,于 2022 年 3 月 23 日达成了主网启动一周年。Mina 的智能合约称为 zkApp,已列入 2022 年第二季度的产品路线图。本月早些时候,Mina 从三箭资本和 FTX Ventures 等大型加密投资者筹集了 9200 万美元,推动其实现为 web3 构建隐私安全层的愿景。

虽然最近其他的 layer 1 已经最大限度地提高了可扩展性,但 Mina 协议选择了最大限度地去中心化。作为一个简洁的区块链,Mina 使用递归加密技术,将可验证的区块链限制在约为 11kB 的固定大小,而像 Solana 这样的 layer 1 则为 PB 级别 (1PB = 1012 KB)。与其他随着区块添加而增长的 layer 1 区块链不同,Mina 能够通过使用一系列自引用的加密证明来保持固定大小。可以将 Mina 的递归密码学过程视为拍摄区块链的照片。每当添加一个新区块,就会拍摄一张包含现有区块链和新区块的照片,将区块链的大小限制为一张照片,同时保留从创世以来的所有信息。

通过上述介绍,本报告深入探讨了困扰传统区块链的状态膨胀问题以及 Mina 如何使用零知识证明来解决该问题,且如何在此过程中提供更具隐私性、去中心化和高效的区块链。我们将探讨 Mina 的设计选择,以及关键参与者如何使其在原生代币 MINA 的支持下作为一个简洁的区块链工作。最后,本报告讨论了 Mina 的未来发展、产品路线图以及为实现其崇高愿景而正在建设的团队。

状态膨胀

“区块链和状态膨胀将永远增加同步完整节点的成本,直到大多数用户无法进行验证,且降级为受信任 (trusted) 系统。这就是为什么一个合理的固定区块大小上限如此重要的原因。”

——Hasu,Flashbots 首席战略

状态膨胀是由于存储区块链所产生的数据、交易、账户、代币、合约和其他信息的不断增长而形成的问题。为了以可信任的方式准确地到达当前状态,每个完整的区块链节点都必须存储每个用户地址、交易的每个代币、铸造的每个 NFT 以及来自创世区块的所有交易历史记录。

虽然老一代区块链由于悠久的历史而处于膨胀的状态,但新一代区块链由于其高吞吐量也面临着同样的问题。例如,以太坊最受欢迎的客户端 Geth 的状态大小约为 600 GB,每周约增加 11 GB。虽然理论上它仍可以在用户级硬件上运行,但随着状态大小的不断增加,未来可能无法实现这一点。以太坊计划通过后续的一组“The Purge”升级解决状态大小问题。另一方面,Solana 作为高性能区块链,以每秒 1 GB 或每年 4 PB 的速度创建数据。它最初计划使用一组“Archivers”来维护交易的历史记录,节点只存储近几天的数据。后来,Solana 放弃了这个项目,计划使用 Arweave 的 permaweb 来存储账本数据。然而,Arweave 目前只能保持 52 TB 的数据,因此需要大幅扩展以满足 Solana 的需求。Solana 现在没有去中心化的解决方案来存储交易历史,目前使用 Google 的 Big Table 作为存储解决方案。

Mina 解决了这个问题。

Mina 通过递归 zk-SNARK 的密码学技术,实现保持轻量且固定的区块链大小。zk-SNARK 的全称是零知识简洁非交互式知识证明。

递归 zk-SNARK

零知识证明 (zk)

零知识证明是一种证明方式,验证者除了得知“某声明是真的”以外不会得知其他任何信息。通过一个具体的例子更容易理解。你可以想象,在一个游戏节目中,有一个奖品藏在你面前的一千扇门的其中一扇门后面。要找到奖品,最好的策略是按顺序打开大门。如果你想向别人证明你知道奖品在哪里,你可以告诉他们门牌号码,他们可以自己验证。这可以帮助你简单地证明你知道答案,但关键在于,这种方法使你向验证者泄漏了解决方案。不过,如果你在将他们带到奖品门口之前,把他们的眼睛蒙上,并旋转他们,你仍然可以证明你知道奖品在哪里,也不需要泄漏门号。这就是一个零知识证明。它可以确认你(证明者)知道解决方案,但不会将其泄露给验证者。值得注意的是,工作也存在不对称性。证明者为找到答案所做的工作量远远超过验证者为检查答案是否正确所做的工作量。证明者必须搜索每一扇门,直到找到正确的一扇门,而验证者只需要检查一扇门。

简洁非交互式知识证明(SNARK)

SNARK 是一种零知识证明。简洁是因为它们很小且易于验证。Mina 上的 SNARK 证明约为 7 kB,验证它只需要 200 毫秒。

虽然一些 zkp(零知识证明)可能需要证明者和验证者之间来回交换信息,但非交互式证明无需与证明者进行更多交互,由验证者进行验证。

Arguments (论证) 是证明 (proof) 的一种形式。在密码学中,证明可以由有效的语句生成,而过高的计算能力可能会生成无效的论证证明。然而,这只是理论上的差异,就我们的目的而言,我们可以将论证视为与证明相同。

Knowledge (知识) 是指证明者事实上知道答案。在我们举的例子中,证明者不仅证明奖品存在,而且还证明他们知道奖品在哪扇门后面。

因此,SNARK 是轻量的、易于验证的知识证明,不需要证明者和验证者之间的来回通信。

递归

最后,Mina 使用了一种叫作 Pickles 的 zk-SNARK,它可以递归地引用自身来创建证明的证明,从而保持区块链的大小固定。与其他 SNARK 不同,Pickles 的另一个特性是它不需要受信任的设置。受信任的设置被认为不太理想的,因为未来的用户必须相信初始设置是在适当的控制下公平执行的。

Mina 和 zk-SNARK

利用 zk-SNARK,Mina 可以维持一个保持较小且大小固定的区块链。每当添加一个新区块,必须创建新 zk-SNARK,其中包含前一个区块的 zk-SNARK,以证明其有效性。只有当区块数据正确时才能创建此 SNARK。因此,SNARK 证明当前区块是有效的,并引用前一个块的 SNARK 来证明它是有效的。通过这种方式,只需验证当前 SNARK 即可确认区块链的整个状态,因为它从创世区块开始就必须是在一系列有效的 SNARK 之上生成的。

然而,一个加密证明不足以运行一个完整的节点。仅凭证明不能让节点执行其基本功能,因为它不提供清晰的信息,例如账户余额。所以除此以外,一个节点还需要四条信息才能发挥作用。第一个是包含哈希数据结构的协议状态,包括账本。第二个是 SNARK 证明和协议状态的验证密钥。其次,节点还必须存储账户信息和与协议匹配的 Merkle 路径,以可靠 (trustless) 地确保账户信息正确并且属于当前协议状态。

虽然 Mina 的宣传文章声称区块链的大小约为 22KB,但随着技术的改进,其大小将仅为 11KB。

11 KB,这是真的吗?

好吧,不完全是,目前也不是。由于此类节点不具备完整的交易历史所以无法参与共识,因此被称为非共识节点。 然而,它比传统区块链的轻节点更强大,因为它在没有信任假设的情况下运行。 它可以独立验证区块链数据,提取其账户余额,并广播交易。 在这方面,它类似于比特币或以太坊上的完整非挖矿节点。还有一点需要注意的是,非共识节点目前还没有上线; 它们是由支持 Mina 协议的团队开发的。

zk-SNARK 的优势

Mina 对 zk-SNARK 技术的利用使其成为一个引人注目的选择方案,与传统区块链相比具有独特的优势。

去中心化的改进

​​运行一个非共识节点只需要很少的磁盘空间和计算能力。虽然其他区块链受到状态膨胀的影响,可能需要强大的工业级硬件来运行完整节点,但 Mina 的非共识节点将可以在智能手机或浏览器上运行。每个用户都可以运行自己的节点,从而显著地改善去中心化。超越自我监管之外的区块链理想是自我验证,Mina 是唯一能够实现自我验证的区块链。

工作不对称性

在传统区块链中,每个节点必须独立执行每笔交易,导致计算资源浪费和交易成本增加。验证交易的零知识证明比执行交易本身占用的资源要少得多。这是以太坊 zk-rollups 的前提,Buterin 认为这是扩展以太坊升级过程中最关键的部分。然而,Mina 在其协议设计中加入了零知识证明。

隐私性

零知识证明不泄露任何不必要的信息,从而保证隐私性。Mina 区块链的零知识证明仅证明状态有效,而不显示交互账户。即使是 Mina 的共识节点,也仅保留最后 290 个区块的历史记录。

共识

Mina 采用的共识机制是 Ouroboros Samasika ,这是 Cardano 共识机制 Ouroboros 的改进版。Ouroboros Samasika 具有不保留完整交易历史的简洁区块链的附加属性。与其他 PoS 链一样,被选为区块生产者的概率取决于节点相对于总质押的 Mina 质押数量。和 Cardano 一样,Mina 不要求节点锁定资金,网络也不罚没资金。网络停止向离线或有不良行为的节点分发奖励。

网络无法得知且不会宣布下一个区块生产者,且可能会有多个区块生产者符合条件。这种模糊性增加了协议的安全性,因为它创建了一种针对区块生产者拒绝服务攻击的自然防御。但是,它的缺点是有时会产生短期分叉。如果多个区块生产者产生了不同的有效区块,则下一个区块生产者遵循标准共识规则,建立在最长链之上。如果只有相同长度的链可用,则区块生产者会在第一次看到的链之上构建,或者在另一个具有更高可验证随机函数输出时替换它。

这种设计选择也意味着 Mina 具有概率终局性。凭借 90% 的诚实质押和 4 分钟的出块时间,Mina 在 15 个区块(即 60 分钟)内达到 99.9% 的终局性。这比 Solana 和 Avalanche 等其他一些需要几秒钟来完成交易的新一代区块链要长得多。

交易过程

Mina 的交易执行过程中有两个重要的参与者:区块生产者和 SNARKer。区块生产者类似于其他 PoS 链上的验证人。他们被随机选择出来,根据他们质押份额占总质押份额的百分比来产生一个区块。SNARKer / SNARK worker 负责生成区块链单个交易的 SNARK 证明。为了更好地理解他们的角色,让我们看看 Mina 上的交易生命周期。

首先,为了执行交易,用户将交易与他们愿意支付的手续费信息一起广播到网络,这些费用被收集在交易池中。

SNARKer 独立地并持续不断地提供这些交易的 SNARK 证明,以便将其打包在区块中。

当一个区块生产者被选中时,他们会从交易池的可用交易中将手续费最高的最有利交易排入队列。然而,区块生产者在添加到队列中时,还必须添加相同数量的交易 SNARK 证明。他们可以自己生成 SNARK 证明,也可以从 SNARKer 那里购买 SNARK 证明。

SNARKer 相互竞争,以最低的成本提供 SNARK 证明。根据 Mina Explorer 提供的数据,在过去的 100 个区块中,所有 SNARK 证明都是由 SNARKer 免费提供的。 SNARKer 未来可能会受到类似于挖矿的协议激励补贴,称为 SNARK 挖矿。

然后,区块生产者更新队列,队列保持不变大小,因为新的 还没有被 SNARKed 交易数量等于被 SNARKed 后删除的交易数量。

然后,区块生产者将进行了 SNARK 的交易打包在区块中,并更新协议状态的 zk-SNARK 证明。

新区块和 SNARK 证明通过网络传播,并得到其他节点的确认。

- Source: Mina Protocol Whitepaper -

审查阻力

Mina 使用 fee market,与比特币类似,每笔交易都在交易池中等待,直到区块生产者添加。 通常,用户可以通过支付足够高的手续费或等待足够长的时间来确保区块生产者将他们的交易添加到区块链中。

需要审查的交易,则必须是所有 SNARKer 都拒绝提供 SNARK 证明,或者必须是所有区块生产者都拒绝将 SNARKed 后的交易添加到区块中。在 Ouroboros 下,我们可以推定网络是去中心化的,并且区块生产者之间没有串通。

所有 SNARKer 之间的串通是非常困难的。首先,任何人都没有进入 SNARK 交易的障碍。 由于 SNARKing 的成本很小,任何人都可以制作 SNARK 交易证明并赚取 SNARKing 费用。 即使手续费很低,区块生产者也能够将 SNARK 后的交易打包在一个区块中,从而获利。

网络统计

Mina 是一个相对较新的区块链,具有独特的架构。因此,有关网络及其采用的可用数据量有限。我们从当前可用的资源管理器和仪表板中汇总了以下信息。

Mina 的理论吞吐量是每秒一个交易。 显然,Mina 不会在吞吐量方面与其他新一代区块链竞争。Mina 不是只比较区块链的吞吐量数字,而是试图在更全面的每单位去中心化的可拓展性 (scale per unit of decentralization /ScaDe) 上进行竞争。ScaDe 前沿是区块链不可能三角的推论,它表明区块链的吞吐量与完整节点的数量成反比。由于 Mina 旨在最大限度地实现去中心化,并且对节点数量没有理论上的限制,因此它在 ScaDe 边界之外运作。

MINA 代币

作为区块链的原生代币,MINA 用于支付交易手续费,并通过区块奖励激励共识参与。目前,无论是在链上还是在论坛上,治理过程都没有基于代币的投票,不过相关计划已提出。

MINA 是一种通胀货币,初始通胀率为 12%,主网启动四年后将降至 7%。通货膨胀是固定的,质押收益率随着质押参与率的变化而变化。虽然通货膨胀可能看起来很高,但有助于保持链的安全,因为它鼓励参与质押。

有多种方法可以查看 MINA 的供应量,例如不包括时间锁定代币的循环供应量,或包含锁定代币的完全稀释供应量。最简单和最准确的方法是通过质押供应进行查看。MINA 的初始总供应量为 10 亿个代币,其中 8.06 亿个在主网发布时可用于质押。这些代币中的大多数都被锁定以供出售,但可以将其进行质押,从而获得区块奖励。随着时间的推移,剩余的 1.94 亿个初始供应代币将以超额奖励、SNARK 挖矿奖励和生态资助的形式分发给社区。

- 来源:Mina Protocol -

Mina 生态已累计筹集到 1.4 亿美元融资,最近一次是在 2022 年 3 月并筹集到 9200 万美元。Mina 的支持者是一些最著名的加密风投基金,如 FTX Ventures、三箭资本、Paradigm、Coinbase Ventures、Polychain Capital、Electric Capital 和 Multicoin Capital。社区销售也引起了巨大的投资者兴趣,致使 Coinlist 将每位投资者的最高上限从 1,000 美元降低到 500 美元。

超额奖励

最近,Looks Rare 及其质押奖励出现了崩溃。与 Mina 类似,它的内部人员持有锁定的代币,这些代币不属于流通供应的一部分,但可以质押以获得奖励。这使他们能够在主网上线后的最初几天获得很大比例的质押奖励,因为他们的持币量远高于流通供应量。著名的 Twitter KOL Cobie 在他最近题为“激励结构”的文章中对此进行了介绍。

Mina 通过设计更好的奖励结构避免了这种情况。在主网上线后的前 15 个月内,质押未锁定代币的用户将获得更多的区块奖励,称为超额奖励。目前,未锁定代币的质押者获得的奖励是锁定代币质押者的两倍,实现了更受社区支持的奖励分配,并避免了 Looks Rare 团队面临的争议。

路线图

Mina 有一个令人兴奋的产品,但 Mina 团队仍在构建其最具开创性的功能。Mina 目前仅用作具有数百个验证者的支付链。智能合约功能、非共识节点,以及可以从互联网上可靠 (trustless) 地提取数据的 zk预言机,这些都是计划在 2022 年上线的充满前景的功能。Mina 还计划开发一个在链下存储数据的 zk-Rollup,扩展其吞吐量。

团队与合作伙伴

有了基本产品和雄心勃勃的路线图,贡献团队成为 Mina 成功的最关键因素。

Mina 背后的核心团队是 O(1) Labs,该团队正在为 Mina 开发智能合约和 zk 预言机。Mina 基金会的现任首席执行官 Evan Shapiro 曾是 O (1) Labs 的首席执行官。Evan 毕业于卡内基梅隆大学,获得计算机科学硕士学位,并于2017年创建了O(1) Labs。

O(1) Labs 的临时 CEO 是 Emre Tekişalp,他曾在 Coinbase 担任业务发展经理,并拥有哥伦比亚商学院的 MBA 学位。Izaak Meckler 是 O(1) Labs 的 CTO,目前正在攻读加州大学伯克利分校密码学专业的博士学位。

\=nil; Foundation 正在搭建从 Mina 到以太坊和其他 EVM 链的桥。2021 年 9 月,以太坊基金会和 Mina 基金会向其提供了 120 万美元的资金,用于建造这座跨链桥。

Chainsafe 正在用 Rust 改写 Mina,并为基于浏览器的节点构建 MVP (Minimum Viable Product)。

Polygon 和 Mina 达成合作,正在 Polygon 的 PoS 链上构建对 Mina 的支持,开发者将能够在 Polygon 上构建利用 Mina zk-SNARK 优势的 dapp。

结论

虽然世界的关注重点在平台战和以太坊的扩展解决方案,但 Mina 一直在构建一个充满前景的解决方案,致力于在不影响去中心化的前提下发挥零知识技术的潜力。凭借强大的团队、令人注目的合作伙伴和支持者以及新的资金储备,Mina 开始兑现其雄心勃勃的路线图。Mina 的贡献者可以从 Solana、Avalanche 和 Terra 等替代平台链在 2021 年取得的成就中汲取灵感。谁将在此领域胜出尚无定数,如果 Mina 能够构建出强大的产品,将会吸引大量用户和投资者前来。

所有内容均由作者独立制作,不一定反映 Messari, Inc. 的意见。作者可能持有本报告中指定的加密货币,每位作者均受 Messari 行为准则和内幕交易政策的约束。此外,员工必须披露其持有的资产,该资产每月更新并在此处发布。本报告仅供参考。它不作为投资建议。 在做出任何投资决定之前,你应该自行研究,并咨询独立的财务、税务或法律顾问。任何资产的过往表现并不代表未来的结果。请参阅我们的使用条款了解更多信息。

学分: 0

分类: 公链

标签:

Mina 

零知识证明 

点赞 0

收藏 1

分享

Twitter分享

微信扫码分享

你可能感兴趣的文章

了解零知识证明历史

335 浏览

如何使用 Circom 和 SnarkJS 实现极简 NFT zkRollup

422 浏览

使用 SnarkJS 和 Circom 进行零知识证明

266 浏览

通过 Tornado Cash 的源代码理解零知识证明

345 浏览

尝试用 Halo2 实现 Tornado Cash

272 浏览

简析 Cached Quotients Lookup Arguments

248 浏览

相关问题

Zokrates零知识如何证明

1 回答

如何开发一个NIZK(非交互式零知识证明)的DApp?能提供一个大致的学习路线吗?

1 回答

bulletproofs的原理

2 回答

基于区块链的数据交易

2 回答

【招聘】filecoin算法工程师

0 回答

win10上跑——实践指南:构建一个零知识证明 DApp [译]demo时发生错误

1 回答

0 条评论

请先 登录 后评论

MinaFans

关注

贡献值: 315

学分: 224

minafans.tech

文章目录

关于

关于我们

社区公约

学分规则

Github

伙伴们

ChainTool

为区块链开发者准备的开源工具箱

合作

广告投放

发布课程

联系我们

友情链接

关注社区

Discord

Twitter

Youtube

B 站

公众号

关注不错过动态

微信群

加入技术圈子

©2024 登链社区 版权所有 |

Powered By Tipask3.5|

粤公网安备 44049102496617号

粤ICP备17140514号

粤B2-20230927

增值电信业务经营许可证

×

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

发给:

内容:

取消

发送

×

举报此文章

垃圾广告信息:

广告、推广、测试等内容

违规内容:

色情、暴力、血腥、敏感信息等内容

不友善内容:

人身攻击、挑衅辱骂、恶意行为

其他原因:

请补充说明

举报原因:

取消

举报

×

如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!

开始 | Mina Protocol

| Mina Protocol Sign up to be notified when zkIgnite, Cohort 3 starts. 立即注册 Change Region English 简体中文 Русский Türkçe 한국어 开发者 入门手册 技术文档 Mina 领航者计划 关于 关于米娜 路线图 用例 与米娜一起工作 技术 米娜的工作原理 zkApps 节点运算符 社区 米娜社区 生态资助金项目 博客 订阅时事通讯 开发者 入门手册 技术文档 Mina 领航者计划 关于 关于米娜 路线图 用例 与米娜一起工作 技术 米娜的工作原理 zkApps 节点运算符 社区 米娜社区 生态资助金项目 博客 Change Region English 简体中文 Русский Türkçe 日本語 한국어 订阅时事通讯 开始 Mina成就简单。 感兴趣迈入下一阶段了吗?这就是你需要的。 运行节点 开始比你想象的更容易 建设Mina 加入协议工作,为Mina的代码库做贡献 加入社区 让我们保持积极和高效 申请grant 挽起袖子,为建设Mina助力 运行节点 因为其他协议很重,所以需要中间商运行节点,重复老算力模式。但Mina很轻,每个人都可以快速的进行点对点连接、同步和验证区块链。它建立在一个恒定大小的加密证明之上,即便扩展到许多用户,也能始终保持可访问性。 开始 建设Mina 有兴趣创建运用zkApps的去中心化应用程序,充分验证链下数据吗?查看我们的文档来开始! 开始 加入社区 Mina是一个包容性的开源项目,集合了世界各地对去中心化技术和未来发展充满热情的人们。 我们的目标 申请Grant 从前端周期和协议开发到社区和内容建设,我们的Grant项目邀请您助力夯实网络,赢取Mina代币。 了解更多 Join the zkApps Builders Program Are you ready to build zkApps? Get hands-on support and a grant to support your zkApp project in the upcoming zkApps Builders Program. Sign Up 知识库 在此,我们整理了最实用的必看资源,帮助您了解Mina的运行方式。 关于Mina协议 了解Pickles SNARK:助力Coda Protocol智能合约 Meet Pickles SNARK: Enabling Smart Contracts on Coda Protocol Mina协议讲解 阅读更多 白皮书 经济白皮书 阅读更多 技术白皮书 阅读更多 关于zk-SNARKs zk-SNARKs指南 What are zk-SNARKs? SNARKs微系列 阅读更多 关于zkApps zkApps概览 Docs HTTPS及zkApps 阅读更多 技术深入说明 Mina协议架构 阅读更多 Mina共识机制 阅读更多 为什么要做Snark生产者 阅读更多 帮助及支持 Discord Interact with other users, ask questions and get feedback. Forums Explore tech topics in-depth. Good for reference. Github Work on the protocol and contribute to Mina’s codebase. Wiki Resources from the O(1) Labs team and community members. Report A Bug Share any issues with the protocol, website or anything else. GET UPDATES Mina is growing fast! Subscribe to stay updated Email(Required) SUBMIT Submit CONNECT Join the conversation. 开发者 入门手册 运行节点 技术文档 Mina 领航者计划 资源 关于技术 入门手册 技术白皮书 经济白皮书 社交媒体 生态 社区 生态资助金项目 加入 Mina 团队 社区博客 Mina Foundation 帮助和支持 Discord Mina Research Github Code of Conduct Privacy Policy Terms of Service © 2024 Top "*" indicates required fields Subscribe to the Mina newsletter to be notified about the latest updatesEmail* What are you interested in? (Select all that apply)* Building dapps Creating tooling and other technical resources Running a node Helping to spread the word (eg. through social media, meetups, creating content, etc.) Staying up to date about Mina Submit Comments这个字段是用于验证目的,应该保持不变。 Submit x Are you a developer wanting to build on Mina? Join the mailing list to get started on your zkApp journey today. You’ll receive a deep dive on Mina, what you need to know to build a zkApp and a guide to all the resources available to you. We’ll also keep you updated on the latest developer grants and programs.   Email(Required) Discord ID Submit Submit x

<

深入解读 Mina 协议及其潜力 - 知乎

深入解读 Mina 协议及其潜力 - 知乎切换模式写文章登录/注册深入解读 Mina 协议及其潜力Crypto 小新在区块链行业发展的大约十年后,早期采用者意识到,一种隐藏的中心化形式正在发生。随着链的利用率增加,它变得更长,这就减少了计算和带宽能力。随着时间的推移,具有最高网络和运营能力的节点将占主导地位,这推动了中心化的发展。2019 年 7 月孵化公司 O(1)Labs 推出了一个雄心勃勃的新开源项目:Mina Protocol(原名 Coda)。他们的实现建立一个能够真正去中心化、拥有可扩展性和安全性的 L1 愿望。Mina 是一个 PoS 区块链和加密货币,支持智能合约。该协议的独特之处在于,它将区块容量限制在 22 KB,使其成为一个 "简洁 "的区块链,这种创新的方法使得该网络被称为 "世界上最轻的区块链"。Mina 目前由 Mina 基金会管理,自成立以来已经取得了重大进展。在对几个对抗性测试网证明了自己后,该网络在 2021 年 3 月成功部署了其主网。在主网之后,该团队一直致力于提升零知识空间:随着 zkApps 或基于零知识证明的去中心化应用的引入,这一点变得明显。zkApps 使用户能够在不损害其隐私或安全的情况下使用 dApps。技术概述Mina 是第一个使用简洁区块链的加密货币,它可以为每笔交易提供短暂而稳定的验证时间。Mina 通过在每个区块中包括简洁的状态有效性证明来实现这一点,这使得大量的交易列表可以被快速而廉价地验证。Mina 使用可增量计算的 SNARKs,以确保每个区块的证明计算成本与上一个区块增加的交易数量成正比。与其在每个完整的节点上存储整个链的状态,不如在区块头中简单地验证余额。然而,这个系统中的验证者需要存储完整的状态,因为在证明新区块的有效性时,它是证人。目前,状态证明的大小为 864 字节,需要约 200 毫秒来验证。因此,任何智能设备(如 iPhone)都可以支持计算负荷。在 Mina Network 中有两个主要角色:区块生产者——收集区块以进行 SNARKSNARK 工作者——创建 zk-SNARK 交易证明以压缩交易Mina 通过拥有一个他们称之为 "Snarketplace "的市场来激励创建 SNARK 证明的工作——在这里,节点交换服务是可以获得费用的( $MINA )。Snarketplace 包含一个固定大小的缓冲区,像一个队列。区块生产者将需要 SNARK 的交易添加到这个队列中,而 SNARK 工作者创建 SNARK 来处理这些交易。因为 Mina 的大小是固定的,区块生产者必须购买已完成的 SNARK,然后才能添加到队列中。在 SNARK 工作者要对队列中的一个区块进行 SNARK 之前,他们会创建一个带有特殊数字签名的交易 SNARK,这个签名被称为知识签名。知识签名有关于提供多少费用和谁来支付的信息。区块生产者在排队等待新区块,另一边 SNARK 工作者在创建证明,任何级别的硬件都可以允许用户参与 Mina,使网络对每个人都有包容性。共识机制Mina 的共识协议称为 Ouroboros Samisika,是第一个可证明安全的 PoS 共识协议。 区块生产由可验证随机函数 (VRF) 决定。 这是一个随机函数,需要私钥才能运行,并且可以使用公钥进行验证, 随机性是根据 Ouroboros 计算的。 如果质押者的 VRF 输出大于他们的质押分数,他们就有机会产生一个块。此外,VRF 允许区块生产者计算他们何时要生产一个区块,因为他们是决定 VRF 输出的私钥的唯一持有者。 这提高了整体安全性,因为不良行为者将无法识别下一个区块生产者来执行 DoS 攻击。 最重要的是,为同一个插槽选择了多个块生产者,进一步降低了攻击的可能性。由于 VRF 在 Mina 中的工作方式,预计每 4 分钟在主链上就会有一个区块生成。代币经济学$MINA 是通胀的,没有供应上限;初始分配包含 10 亿 MINA 代币(不包括未来的区块奖励),在主网的前 15 个月,对解锁账户进行 8 年的完全解锁 "超强奖励"(双倍区块奖励);在 Mina PoS 系统中,区块奖励和费用是按比例分配的。假设参与度很高,相对于那些决定质押的人来说,那些不质押的人将得到一定的稀释。作为激励质押的一种方式,Mina 的通货膨胀率从 12%开始。在头五年中,该比率被设定为下降并保持在 7%,然后受制于产业链的治理,尽管治理目前尚未正式发布说明。该协议将以这些通货膨胀率为目标,而不考虑质押的参与,从而导致区块奖励的动态变化。例如,如果只有 50%的网络质押,区块奖励就会翻倍。这是由于 Ouroboros 的共识系统:每个区块产生的区块数量将与质押比例成正比。在参与率低的情况下,这种方法自然会鼓励参与者质押。zkApps在 Mina 生态系统中,有一个零知识驱动的智能合约集,称为 zkApps。这些智能合约就像普通的的智能合约一样,但额外具有隐私和链下计算等附加功能。一个 zkApp 由两部分组成:一个智能合约(用 SnarkyJS 编写)一个用户界面zkApps 及其用例的计划集成为用户描绘了一幅相当积极的画面。在 zkApp 部署到主机网站后,用户可以与他们的 Auro 钱包自由互动。当用户与 zkApp 互动并输入任何相关的数据(例如:在 AMM 上购买资产),zkApp 中的验证器功能将生成一个由用户数据提供的 ZK 证明,这个数据只对输入的用户可见。前端过程类似于用户目前使用的小狐狸钱包或其他浏览器钱包,唯一的区别是在后端。当 Mina 网络收到交易时,它会验证证明是否有效,并更新 zkApp 的状态。由于所有的活动都发生在用户的网络浏览器中,他们的隐私始终得到保证。考虑到 zkApps,Mina 专注于建立三个主要功能:在线和链上的终端数据隐私[生产中];无权限的 Web Oracles(zkOracles)[开发中];私人的互联网登录(zkIdentity)[开发中] 。总结Mina 声称是世界上最轻的区块链,完全由其用户驱动,并采用递归的 zk-SNARKs 来构建整个区块链,其大小大约为 22kb(相当于几条推文)。它是 L1,允许零知识智能合约的有效实施和可编程性,称为 zkApps。凭借 Mina 独特的隐私功能和连接任何网站的能力,zkApps 在现实世界和加密货币之间创造了一个安全和隐私的桥梁。作为率先突破并提供零知识企业解决方案的项目之一,Mina 的位置无疑是在这不断扩大的零知识领域的最前沿。发布于 2022-08-12 17:59区块链(Blockchain)财经数字货币​赞同​​1 条评论​分享​喜欢​收藏​申请