Changed database and dump location to sdcard with internal memory backup.

This commit is contained in:
Adrian Tiberius 2015-06-17 18:44:10 +02:00
parent 3fc6455c0e
commit 86eec731d6
5 changed files with 34 additions and 15 deletions

View File

@ -2,6 +2,7 @@ package org.ethereum.android_app;
import android.content.Context; import android.content.Context;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Environment;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarActivity;
@ -12,6 +13,9 @@ import android.view.MenuItem;
import android.os.Build; import android.os.Build;
import org.ethereum.android.EthereumManager; import org.ethereum.android.EthereumManager;
import org.ethereum.config.SystemProperties;
import java.io.File;
public class MainActivity extends ActionBarActivity { public class MainActivity extends ActionBarActivity {
@ -35,7 +39,15 @@ public class MainActivity extends ActionBarActivity {
toolbar = (Toolbar) findViewById(R.id.tool_bar); toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
ethereumManager = new EthereumManager(this); String databaseFolder = null;
File extStore = Environment.getExternalStorageDirectory();
if (extStore.exists()) {
databaseFolder = extStore.getAbsolutePath();
} else {
databaseFolder = getApplicationInfo().dataDir;
}
ethereumManager = new EthereumManager(this, databaseFolder);
adapter = new TabsPagerAdapter(getSupportFragmentManager(), ethereumManager); adapter = new TabsPagerAdapter(getSupportFragmentManager(), ethereumManager);
viewPager = (ViewPager) findViewById(R.id.pager); viewPager = (ViewPager) findViewById(R.id.pager);
@ -100,7 +112,7 @@ public class MainActivity extends ActionBarActivity {
Log.v(TAG, "111"); Log.v(TAG, "111");
Log.v(TAG, "222"); Log.v(TAG, "222");
long duration = ethereumManager.connect(); long duration = ethereumManager.connect(SystemProperties.CONFIG.databaseDir() + File.separator + "poc-9-492k.dmp");
//ConsoleFragment consoleeFrag = (ConsoleFragment)getSupportFragmentManager().findFragmentById(R.id.console); //ConsoleFragment consoleeFrag = (ConsoleFragment)getSupportFragmentManager().findFragmentById(R.id.console);
//consoleeFrag.updateDuration(duration); //consoleeFrag.updateDuration(duration);
Log.v(TAG, "333"); Log.v(TAG, "333");

View File

@ -9,12 +9,11 @@ import org.ethereum.android.di.components.DaggerEthereumComponent;
import org.ethereum.config.SystemProperties; import org.ethereum.config.SystemProperties;
import org.ethereum.facade.Ethereum; import org.ethereum.facade.Ethereum;
import org.ethereum.listener.EthereumListenerAdapter; import org.ethereum.listener.EthereumListenerAdapter;
import org.ethereum.android.manager.BlockLoader;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.ethereum.android.jsonrpc.JsonRpcServer; import org.ethereum.android.jsonrpc.JsonRpcServer;
import static org.ethereum.config.SystemProperties.CONFIG;
public class EthereumManager { public class EthereumManager {
private static final Logger logger = LoggerFactory.getLogger("manager"); private static final Logger logger = LoggerFactory.getLogger("manager");
@ -24,9 +23,16 @@ public class EthereumManager {
private JsonRpcServer jsonRpcServer; private JsonRpcServer jsonRpcServer;
public EthereumManager(Context context) { public EthereumManager(Context context, String databaseFolder) {
System.setProperty("sun.arch.data.model", "32"); System.setProperty("sun.arch.data.model", "32");
System.setProperty("leveldb.mmap", "false"); System.setProperty("leveldb.mmap", "false");
if (databaseFolder != null) {
System.out.println("Database folder: " + databaseFolder);
SystemProperties.CONFIG.setDataBaseDir(databaseFolder);
}
ethereum = DaggerEthereumComponent.builder() ethereum = DaggerEthereumComponent.builder()
.ethereumModule(new EthereumModule(context)) .ethereumModule(new EthereumModule(context))
.build().ethereum(); .build().ethereum();
@ -38,15 +44,16 @@ public class EthereumManager {
} }
public long connect() { public long connect(String dumpFile) {
long duration = 0; long duration = 0;
if (CONFIG.blocksLoader().equals("")) { if (dumpFile == null) {
ethereum.connect(SystemProperties.CONFIG.activePeerIP(), ethereum.connect(SystemProperties.CONFIG.activePeerIP(),
SystemProperties.CONFIG.activePeerPort(), SystemProperties.CONFIG.activePeerPort(),
SystemProperties.CONFIG.activePeerNodeid()); SystemProperties.CONFIG.activePeerNodeid());
} else { } else {
ethereum.getBlockLoader().loadBlocks(); BlockLoader blockLoader = (BlockLoader)ethereum.getBlockLoader();
blockLoader.loadBlocks(dumpFile);
} }
return duration; return duration;
} }

View File

@ -13,6 +13,7 @@ import com.j256.ormlite.stmt.DeleteBuilder;
import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils; import com.j256.ormlite.table.TableUtils;
import org.ethereum.config.SystemProperties;
import org.ethereum.core.Block; import org.ethereum.core.Block;
import org.ethereum.core.TransactionReceipt; import org.ethereum.core.TransactionReceipt;
@ -32,7 +33,7 @@ public class OrmLiteBlockStoreDatabase extends OrmLiteSqliteOpenHelper implement
private Dao<TransactionReceiptVO, Integer> transactionDao = null; private Dao<TransactionReceiptVO, Integer> transactionDao = null;
public OrmLiteBlockStoreDatabase(Context context) { public OrmLiteBlockStoreDatabase(Context context) {
super(context, Environment.getExternalStorageDirectory().getAbsolutePath() super(context, SystemProperties.CONFIG.databaseDir()
+ File.separator + DATABASE_NAME, null, DATABASE_VERSION); + File.separator + DATABASE_NAME, null, DATABASE_VERSION);
} }

View File

@ -29,16 +29,15 @@ public class BlockLoader extends org.ethereum.manager.BlockLoader {
super(blockchain); super(blockchain);
} }
public void loadBlocks(){ public void loadBlocks(String dumpFile){
String fileSrc = CONFIG.blocksLoader();
try { try {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
FileInputStream inputStream = null; FileInputStream inputStream = null;
inputStream = new FileInputStream(fileSrc); inputStream = new FileInputStream(dumpFile);
scanner = new Scanner(inputStream); scanner = new Scanner(inputStream);
System.out.println("Loading blocks: " + fileSrc); System.out.println("Loading blocks: " + dumpFile);
while (scanner.hasNext()) { while (scanner.hasNext()) {

View File

@ -90,7 +90,7 @@ samples.dir = samples
database.reset = false database.reset = false
# place to save physical storage files # place to save physical storage files
database.dir = /mnt/sdcard database.dir = database
# this string is computed # this string is computed
# to be eventually the address # to be eventually the address
@ -198,5 +198,5 @@ blockchain.only=false
# from a rlp lines # from a rlp lines
# file and not for # file and not for
# the net # the net
blocks.loader=/mnt/sdcard/poc-9-492k.dmp blocks.loader=
#E:\\temp\\_poc-9-blocks\\poc-9-492k_.dmp #E:\\temp\\_poc-9-blocks\\poc-9-492k_.dmp