区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学的方式保证的不可篡改和不可伪造的分布式账本。账本的参与者根据共识原则来制约和协商对账本中记录的更新,没有第三方机构的参与,维护了每个节点的权益。每个节点记录的都是完整的账目,独立且地位等同。
private void printRequestInfo(HttpServletRequest req){
StringBuffer requestURL=req.getRequestURL();
String queryString=req.getQueryString();
if(queryString==null){
logger.info("url:"+requestURL.toString());
}else{
logger.info("url:"+requestURL.append('?').append(queryString).toString());
}
logger.info("method:"+req.getMethod());
//print all the headers
Enumeration headerNames=req.getHeaderNames();
while(headerNames.hasMoreElements()){
String headerName=(String)headerNames.nextElement();
logger.info("header:"+headerName+":"+req.getHeader(headerName));
}
区块链是由一串串区块相互连接而成。我们所说的区块就是一项交易产生时,为了记录交易信息而设置的一种数据载体。区块实际上就是数据库记录,每次输入数据,就是创立一个区块。
所有的区块都有两个部分,一是区块头,二是区块体。区块头是用来刻录当前区块的元信息,用于描述信息的结构、语义、用途和用法等。区块体是记录写入的实际数据,这是区块的重要部分。
区块是怎么组成链的?
现在,我们知道了区块是什么了。接下来我们再谈谈区块是如何在区块链中运行从而产生区块链的。
我们把各项信息当成一条条账户交易记录,每一个区块都承载着这些记录,也就是把账户交易记录填写在账单中,并且这些账单按照顺序相互联结形成一个
public MutableHttpServletRequest(HttpServletRequest request)throws IOException{
super(request);
this.customHeaders=new HashMap<String,String>();
this.bytes=StreamUtils.copyToByteArray(request.getInputStream());
this.body=new String(this.bytes,StandardCharsets.UTF_8);
}
public void putHeader(String name,String value){
this.customHeaders.put(name,value);
}
Override
public BufferedReader getReader()throws IOException{
return new BufferedReader(new InputStreamReader(getInputStream(),StandardCharsets.UTF_8));
}
Override
public ServletInputStream getInputStream()throws IOException{
if(bytes==null){
bytes=new byte[0];
}