Eos是一个比较新的区块链项目,可以像以太坊一样建立智能合约,但它比以太坊快得多。希望在eos网络上创建智能合约的开发人员,在eos区块链的使用资源上拥有一些eos比如网络带宽,ram和cpu。这些资源帮助用户创建智能合约并将其分发给他的用户。
每个想要使用eos网络从他的帐户转移eos(或制作智能合约)到另一个用户的用户必须持有一定数量的eos网络带宽,RAM和CPU。这意味着在交易时没有从他的钱包中扣除任何费用代表这些资源,但是这些资源会停留一段时间(3天),这取决于交易大小及其执行时间。
在Eos平台上,用户可以轻松创建代币,如ethereum erc-20代币。
在ubuntu中设置Eos
我们设置了来自jungle-testnet区块链的eos-blockchain用于测试目的。你可以简单地按照上面链接给出的设置步骤,安装完成后,你会得到两个网址:
- http://127.0.0.1:8888 ,这是你的节点URL,它与区块链连接并提供有关区块链的信息。
- http://127.0.0.1:3000 ,这是你的钱包网址,这将帮助我们创建钱包。
现在,为了在java项目中实现这一点,我们将在spring-tool(sts)中创建一个简单的Maven项目。并在我们的pom.xml文件中添加这些依赖项。
<repositories>
<repository>
<id>oss.sonatype.org-snapshot</id>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.jafka</groupId>
<artifactId>jeos</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
你可以查看上面这个网址的依赖关系,是开源的。
要创建一个eos帐户,你需要一个现有的eos帐户,因为每个eos帐户都需要一些eos代币才能购买一些金额的ram,cpu和网络带宽。
package com.eos.service;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import org.apache.log4j.BasicConfigurator;
import com.eos.Dto.CreateAccountArg;
import com.eos.Dto.Key;
import com.eos.Dto.RequiredAuth;
import com.fasterxml.jackson.databind.ObjectMapper;
import client.EosApiClientFactory;
import client.EosApiRestClient;
import client.domain.common.WalletKeyType;
import io.jafka.jeos.EosApi;
import io.jafka.jeos.EosApiFactory;
import io.jafka.jeos.core.common.transaction.PackedTransaction;
import io.jafka.jeos.core.common.transaction.SignedPackedTransaction;
import io.jafka.jeos.core.common.transaction.TransactionAction;
import io.jafka.jeos.core.common.transaction.TransactionAuthorization;
import io.jafka.jeos.core.request.chain.AbiJsonToBinRequest;
import io.jafka.jeos.core.request.chain.json2bin.BuyRamArg;
import io.jafka.jeos.core.request.chain.json2bin.DelegatebwArg;
import io.jafka.jeos.core.response.chain.AbiJsonToBin;
import io.jafka.jeos.core.response.chain.Block;
import io.jafka.jeos.core.response.chain.transaction.PushedTransaction;
import io.jafka.jeos.exception.EosApiException;
import io.jafka.jeos.impl.EosApiServiceGenerator;
public class CreateAccount {
static void create(EosApi client) throws Exception {
ObjectMapper mapper = EosApiServiceGenerator.getMapper();
final String newAccountName = "nitinoodles2";
String password = client.createWallet(newAccountName);
System.out.println("password "+password);
String pubKey = client.createKey(newAccountName, WalletKeyType.K1);
System.out.println("pubKey "+pubKey);
final String cr