基于 MongoDB 的 Web APP(建于 Heroku)-PART 2

作者:杏彩彩票app下载

新一代虚拟币的浪潮,基于匿名网络的Zcash,下面分享在Linux下安装Zcash开始挖矿教程。

官网上是这么写的:

最前言

这是基于 MongoDB, Java, Heroku, SparkAngularJSWeb App 的第二部分。对 MongoDB 有兴趣的小伙伴可以看看。不好意思都是英文,因为都是上学期写的,最近的几篇 Swift 文章我都是用中文的,我以后也都会用中文写。以下是正文。

If you have known some basic knowledge about web development before, web building process would be very easy. Fortunately, this tutorial is not a web development tutorial. The main point of this tutorial is for "Web App* + MongoDB + Java + Heroku + Spark + AngularJS"*, which sometimes could become very complicated and annoying as a whole.

Here is what the application looks like:

This is the todo list page:

And this is the create todo page:

Before we start, please check twice what ==version== of mongo-java-driver you are using. I changed my java driver version from 3.2.2 which I used in PART 1 to 2.7.2, because I struggled for more than 40 hours on these versions conflict stuff. Not only the relation between mongo-java-driver version and the code syntaxes you need to take care of, but also maven-compiler-plugin version, and spark version, and the version of MongoHQ or mLab MongoDB on Heroku. For MongoDB on Heroku, you can either choose mLab MongoDB or MongoHQ for this project.

This early morning,I find a new blockchain project,Z cash. The name feels so futuristic and it makes to dig more into it by exploiting it on my old linux pc. There are still about a month until the final release and going into the trading plantform. If you have a old pc or you have a mutiple sytstem pc running linux,don't waste the this opportunity may double or even more to expand your pocket.The more powerful your cpu or gpu are getting,the more potential you will make. Without a further or do,let's see it in action how I exactly do it.

偶然的机会让我发现这个超前概念的区块链项目,Zcash.仅仅是看到这个名字,就有一种未来的即视感,我毫不犹豫的开始在我那台有些年头的Linx电脑上开始部署。距离此币正式发布上线交易所尚有1个多月时间之久,具体目前官网定在了10月18号。如果你有一台现成的linux系统的电脑,千万不要错过这次机会。这是一款可以用cpu和gpu挖矿的币,使用的机器配置越强,自然产出也更高。从团队的社交宣传力度上来看,这可能又是一个10倍潜力币,挖矿就要争分夺秒。现在挖矿难度还不高哦,感兴趣的朋友快和我一起开始部署吧。


Prerequisite:##

  1. JDK 8
  2. Apache Maven 2.7.2 (I still recommend to use 3.2.2 for other application on other server, or you can still try on Heroku)
  3. NetBeans IDE or you can use Eclipse. Actually, I highly recommend TextMate, because you can validate syntax (html, css or js) on it.
  4. Bootstrap
  5. NodeJS

Step 1 . Update your linux stystem version to the latest one to ensure the MAX working efficiency

第一步 更新你的Linux系统至最新版本来确保最大的效能产出
$ sudo apt-get update

配置

Github Repository##

There are some other web code together on: Github: full-stack-web-project-zhugejunwei. You can run the command below in your terminal to clone the application.

$ git clone https://github.com/infsci2560sp16/full-stack-web-project-zhugejunwei.git

And run $ cd full-stack-web-project-zhugejunwei to get into the file.

Steps below is not necessary, I just want to show you some basic processes of this project. If you clone the repository from my github, you got everything you need.

Step 2. Install the Build Essential Environment

第二步 安装必要的支持环境
$ sudo apt-get install build-essential pkg-config libgtest-dev libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils

建立~/.zcash目录,并在~/.zcash/zcash.conf中使用以下命令行放置配置文件。

Step 1: Create a Maven project##

In your terminal, navigate to the location where you want to create the project and execute the command below.

$ mvn archetype:generate -DgroupId=com.example -DartifactId=helloworld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Step 3. Download Zcash code and run the command below,download size total 1.5G,takes about 1

hour,depends on your bandwidth and hardware,please be patience.
第三步 下载zcash代码并执行下面的命令,文件大小大约1.5gb,这个过程大概会持续1小时左右,具体情况取决于你的带宽和硬件配置
$ git clone
$ cd zcash/
$ git checkout v0.11.2.z9
$ ./zcutil/fetch-params.sh
图片 1
图片 2

mkdir -p~/.zcash

Step 2: Install necessary packages##

Install necessary packages executing this command via terminal in your project directory

$ sudo npm install -g grunt-cli

or

$ npm install

Test your java code

$ mvn test

Test your html, css and JavaScript code

$ grunt test

As I said at the Prerequisite, it's a good practice to validate your code after finishing html and css coding. Besides, If you get errors about JavaScript in grunt test, you can either drag your .js file into ==outjs== file or use jshint ignore to get rid of errors.

Step 4. Compile the code,run the command below,this may take a while,get a cup of coffee and play video games will help you get through it.

第四步 编译代码,执行下面的命令。这会持续一段时间,最好的办法就是喝杯咖啡,来几把主机游戏,你会发现时间会过的很快
$ ./zcutil/build.sh -j4
图片 3

echo"addnode=mainnet.z.cash">~/.zcash/zcash.confecho"rpcuser=username">>~/.zcash/zcash.confecho"rpcpassword=`head -c 32 /dev/urandom|base64`">>~/.zcash/zcash.conf

Step 3: Defining the Domain Model and Service class##

Read documents stored in MongoDB

public List<Todo> findAll() {
        List<Todo> todos = new ArrayList<>();
        DBCursor dbObjects = collection.find();
        while (dbObjects.hasNext()) {
            DBObject dbObject = dbObjects.next();
            todos.add(new Todo((BasicDBObject) dbObject));
        }
        return todos;

Create new todo, deserializes json into todo (convert JSON to Java, for more details about Gson, see gson-user-guide), and insert into a collection.

    public void createNewTodo(String body) {
        Todo todo = new Gson().fromJson(body, Todo.class);
        collection.insert(new BasicDBObject("title", todo.getTitle()).append("done", todo.isDone()).append("createdOn", new Date()));
    }

Update the todo list

    public Todo find(String id) {
        return new Todo((BasicDBObject) collection.findOne(new BasicDBObject("_id", new ObjectId(id))));
    }

    public Todo update(String todoId, String body) {
        Todo todo = new Gson().fromJson(body, Todo.class);
        collection.update(new BasicDBObject("_id", new ObjectId(todoId)), new BasicDBObject("$set", new BasicDBObject("done", todo.isDone())));
        return this.find(todoId);
    }

Step 5. Configire the mining file

create a new configuration file,run the command

第五步 部署挖矿文件
创建新的部署文件,用下面的命令
$ mkdir ~/.zcash
$ nano ~/.zcash.zcash.conf

enter this info inside your configuration file

在部署文件中输入下方信息
testnet=1
addnode=alphatestnet.z.cash
rpcuser=rpcusername
rpcpassword=rpcpassword
gen=1

save this file,hit CTRL+X,then click Y.
图片 4

注意:这样做将覆盖所有你之前在测试网络中对zcash.conf内部的设置。你可以在测试网络中保留zcash.conf,但请注意testnet=1和addnode=betatestnet.z.cash的设置已经被删除了;请使用addnode=mainnet.z.cash。我们强烈建议您使用随机密码来避免在进入 RPC 接口时的潜在安全问题。

RESTful Service that returns responds to a GET/POST request and returns JSON###

private void setupEndpoints() {
        post(API_CONTEXT + "/todos", "application/json", (request, response) -> {
            todoService.createNewTodo(request.body());
            response.status(201);
            return response;
        }, new JsonTransformer());

        get(API_CONTEXT + "/todos/:id", "application/json", (request, response)

                -> todoService.find(request.params(":id")), new JsonTransformer());

        get(API_CONTEXT + "/todos", "application/json", (request, response)

                -> todoService.findAll(), new JsonTransformer());

        put(API_CONTEXT + "/todos/:id", "application/json", (request, response)

                -> todoService.update(request.params(":id"), request.body()), new JsonTransformer());
    }

Step 4 Deploy the app onto Heroku
Now we will write the entry point for our application. When you run this class as a Java application, it starts the Jetty server and start listening to requests. Jetty port is 4567 by default. But we have to use 5000 port for Heroku application. So this piece of code is necessary.

port(Integer.valueOf(System.getenv("PORT")));

Because we use the different version of mongo-java-driver this time, the authentication syntax is different.

DB db = mongoURI.connectDB();
db.authenticate(mongoURI.getUsername(), mongoURI.getPassword());    

Step 6. Start Mining

start mining and run the command below
第6步 开始挖矿
用以下命令开始挖矿
$ ~/zcash/./src/zcashd -daemon

wait for a little while,run this command to check your node info.

让挖矿持续一会儿后,用这个命令来检查你的节点信息
$ ~/zcash/./src/zcash-cli getinfo
图片 5

使能 CPU 挖矿:

Step 4: Create todo.html##

Create a new file called todo.html inside of the src/main/resources/public directory.

Step 7. Stop Mining

if you want to stop mining,enter

第7步 停止挖矿
如果你想停止挖矿,输入
$ ~/zcash/./src/zcash-cli setgenerate false

to start mining again,enter

停止挖矿后再继续挖矿,输入
$ ~/zcash/./src/zcash-cli setgenerate true

如果你需要使能 CPU 挖矿,请运行以下命令行:

Step 5: Write the Angular application##

You can also use Freemarker (.ftl) to build the web application, it is very easy and flexible. You can find some sample code in my Github repository.

Step 8. Check the number coins you mined

$ ~/zcash/./src/zcash-cli listtransactions

If generated:true ,it means you already have the block.This pic below shows I just got one block,I am getting 2.9955 coins. After you mined your own coins,secure your linux pc and wait for your luck to get you some extra bucks.
图片 6

Feel free to follow me and get more update about my journey and all the interesting things in my life.
第8步,查看挖矿所得的币的数量

如果generated:true,就说明你已经挖到了块。这张图显示了我刚挖到了一个块儿,块中包含2.9955个币。注意在你挖到币后,时刻保持你挖矿电脑的安全,剩下的就是屯币然后一个月后说不定你的钱包就鼓了不少呢

图片 7

$echo'gen=1'>>~/.zcash/zcash.conf$echo"genproclimit=$(nproc)">>~/.zcash/zcash.conf

Step 6: Run the application##

Open a new command-line terminal, execute the following command in the terminal.

  • $ mvn test

  • $ grunt test

  • $ git push heroku master

  • $ git push

If you add something new, run these commands before git push

  • $ git add .

  • $ git commid -m "add something new"

You can learn more on this page: Getting Started on Heroku with Java

默认的挖矿程序并不高效,但已经被很好的审阅过了。如果想要运行更加高效但并没有被审阅过的求解器,你可以运行以下命令行:

Related links##

  • Java Code Examples for com.mongodb.DB.authenticate()

  • Spark Getting Started

  • 14 Spark Handling GET requests

  • Developing Single Page Web Applications using Java 8, Spark, MongoDB, and AngularJS

  • I also learnt this: Spring读书笔记-----Spring的Bean之Bean的基本概念 as additional knowledge for building a web application.

  • Adding mLab as a Heroku add-on

  • Use MongoHQ with Java on Heroku


欢迎转载,转载请注明出处。

$echo'equihashsolver=tromp'>>~/.zcash/zcash.conf

本文由杏彩发布,转载请注明来源

关键词: