logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

netty-与redis进行简单通信

redis协议约定格式:*3(命令的词数)$3(第一个关键词长度)set (第一个关键词)$4name$8zhangsan(每一行末尾都加 回车and换行)package com.throne.netty.test1.protocol;import io.netty.bootstrap.Bootstrap;import io.netty.buffer.ByteBuf;import io.netty

#nio#java
区块链学习之Web3j入门(二):以太坊账户管理

1. 以太坊账户以太坊使用非对称密钥进行身份识别。每个账户拥有自己独立的私钥(256位随机数),私钥通过椭圆曲线加密算法得到对应的公钥,再由公钥的后20字节作为账户地址值。私钥用于签名,公钥用于核对信息。得到私钥意味着得到了该账户的全部信息。2.Web3j中的账户管理Web3j中账户管理主要由org.web3j.crypto包实现,常用的类有以下三个:类名功能ECKeyPair表征密钥对的类Wal

#区块链#java
区块链学习之Web3j入门(四): 普通交易的实现

1.普通交易的流程普通交易由由节点负责签名,然后发送到以太坊网络中心进行确认。在 web3j 中,提交一个普通交易,需要使用ethSendTransaction()方法发送一个Transaction对象,该方法对应以太坊提供的eth_sendTransaction这个 RPC 接口。在发送Transaction对象之前,首先要准备本次交易的相关数据,包括以下四种信息:信息类型内容交易基本信息发送方

#区块链#java
区块链学习之Web3j入门(三):状态与交易

1.以太坊的两种交易以太坊中有两种交易,分别为普通交易和裸交易。普通交易由外部节点进行签名,然后发送到网络中进行确认;裸交易由外部应用进行签名,节点不再额外处理,而只是负责发送到网络中进行确认(未经节点加工的原始交易数据)。交易作为一种激励,使得账户的状态不断发生改变(账户余额),即产生了一种基于余额激励的以太坊状态机。2. Web3j获取账户余额以太坊定义了eth_getBalance接口用来获

#区块链#java
设计模式--软件设计六大原则

为了提高软件系统的可维护性和可复用性,增加可扩展性和灵活性。我们一般要在软件设计过程中遵循以下六大设计原则:开闭原则里氏代换原则依赖倒转原则接口隔离原则迪米特法则合成复用原则1.开闭原则“对扩展开放,对修改关闭。” 即在程序需要进行功能等扩展的时候,不去修改原有代码。要实现这样的效果,我们需要使用接口和抽象类。例如:搜狗输入法的皮肤设计。搜狗输入法的皮肤可以划分为背景图片、窗口颜色等元素的组合。我

#设计模式#java
DAPP:以太坊智能合约投票系统(solidity)+java后台(springboot+mybatis+web3j+thymeleaf)

DAPP:投票系统1. 项目背景2. 技术选型3. solidity合约代码4.功能展示1. 投票列表界面2.添加投票页面3.查看票数及投票页面4.数据库表5.项目源码地址1. 项目背景为巩固近期学习过的区块链相关知识,我们利用几天时间开发了一套可以实际应用的基于以太坊智能合约的投票系统。2. 技术选型智能合约编写:solidity私链环境:ganache-cli前端:thymeleaf模板引擎后

#以太坊#智能合约#spring boot +2
区块链学习之Web3j入门(五): 裸交易的实现

1.裸交易的过程与普通交易由节点负责签名不同,裸交易需要外部应用进行离线签名。 因此在使用裸交易之前,需要首先载入账户凭证,利用私钥进行签名。2.裸交易的实现从账户一向账户九转账1个以太币,流程如下:首先创建账户一的凭证对象,然后创建交易请求,再用账户一的凭证对该请求进行签名,签名结束最后提交该交易请求即完成一次裸交易。@Testpublic void submitRawTransaction()

#区块链#java
区块链学习之Web3j入门(一)

区块链学习之Web3j入门(一)1.开启ganache-cli服务ganache-cli 是以太坊节点仿真器软件 ganache 的命令行版本,可以方便开发者快速进行以太坊DApp的开发与测试,开启服务后如下图所示(初始有十个账户信息):ganache-cli运行在8545端口监听http请求,我们将使用web3j将JSON RPC 调用请求使用http协议发送到节点的8545端口。2.用mave

#区块链#java#编程语言
到底了