scorex framework

Download Scorex framework

If you can't read please download the document

Upload: dmitry-meshkov

Post on 19-Feb-2017

122 views

Category:

Software


1 download

TRANSCRIPT

Scorex -

Scorex

Scorex

Scorex

Scorex

Bitcoin: > 300K /++, 44 PythonEtheriumJ: > 174K JAVAScorex: ~ 4K Scala

-

, (Proof-of-Work / Proof-of-Stake / Proofs-of-Retrievability / Proof-of-Activity)

(box/account)

(in-memory, no-SQL, SQL)

(Sha / )

json

:

(ScalaCheck), CI

https://github.com/ScorexProject/scrypto

IOHK research

Scorex

: https://github.com/ScorexProject/Scorex/wiki/Getting-started

Java 8

sbt

libraryDependencies ++= Seq(
"org.consensusresearch" %% "scorex-basics" % "1.+",
"org.consensusresearch" %% "scorex-consensus" % "1.+",
"org.consensusresearch" %% "scorex-perma" % "1.+",
"org.consensusresearch" %% "scorex-transaction" % "1.+"
)

:scorex-basics

scorex-transaction

scorex-consensus Nxt Quora

scorex-perma Permacoin

class MyApplication(val settingsFilename: String) extends Application {
// Your application config
override val applicationName = "my cool application"
override val appVersion = ApplicationVersion(0, 1, 0)
override implicit lazy val settings = new Settings with TransactionSettings {
override val filename: String = settingsFilename
}
// Define consensus and transaction modules of your application
override implicit lazy val consensusModule = new NxtLikeConsensusModule()
override implicit lazy val transactionModule = new SimpleTransactionModule()(settings, this)
// Define API routes of your application
override lazy val apiRoutes = Seq(
BlocksApiRoute(this),
TransactionsApiRoute(this),
NxtConsensusApiRoute(this),
WalletApiRoute(this),
PaymentApiRoute(this),
UtilsApiRoute(this),
PeersApiRoute(this),
AddressApiRoute(this)
)
// API types are required for swagger support
override lazy val apiTypes = Seq(
typeOf[BlocksApiRoute],
typeOf[TransactionsApiRoute],
typeOf[NxtConsensusApiRoute],
typeOf[WalletApiRoute],
typeOf[PaymentApiRoute],
typeOf[UtilsApiRoute],
typeOf[PeersApiRoute],
typeOf[AddressApiRoute]
)
// Create your custom messages and add them to additionalMessageSpecs
override lazy val additionalMessageSpecs = TransactionalMessagesRepo.specs
// Start additional actors
actorSystem.actorOf(Props(classOf[UnconfirmedPoolSynchronizer], this))
}

object MyApplication extends App {
// Provide filename by command-line arguments
val filename = args.headOption.getOrElse("settings.json")
// Create application instance
val application = new MyApplication(filename)
// Run it
application.run()
// Generate account in your wallet
if (application.wallet.privateKeyAccounts().isEmpty) application.wallet.generateNewAccounts(1)
}

API

API command line client Swagger GUI

Scorex

json

wikihttps://github.com/ScorexProject/Scorex/wiki/Settings

:

{
"p2p": {
"bindAddress": "0.0.0.0",
"upnp": false,
"upnpGatewayTimeout": 7000,
"upnpDiscoverTimeout": 3000,
"port": 9084,
"knownPeers": [
"23.94.190.226:9185"
],
"maxConnections": 10
},
"walletDir": "/tmp/scorex/wallet",
"dataDir": "/tmp/scorex/data",
"rpcPort": 9085,
"rpcAllowed": [],
"maxRollback": 100,
"blockGenerationDelay": 0,
"genesisTimestamp": 1460952000000,
"apiKeyHash": "GmVvcpx1BRUPDZiADbZ7a6zgQV3Sgj2GhNoEiTH9Drdx",
"cors": false
}

:walletDirOpt

walletPassword

walletSeed API

https

apiKeyHash

https://github.com/ScorexProject/Scorex/wiki/Security

Lagonaki: https://github.com/ScorexProject/Lagonaki

Permacoin

mail list: https://scorex-dev.groups.io/g/main

1.3.0:

Account/Box

authenticated data structures:Merkle treeSkip list

Roller chain consensus: http://arxiv.org/pdf/1603.07926v2.pdfhttps://github.com/ScorexProject/rollerchain

Permacoin

Sigmacoin transaction layer: https://github.com/ScorexProject/sigmacoin

output

output

: output w1, w2, x=gw1 gw2=hw2... Zero-Knowledge.

Ergaki testnet:https://github.com/ScorexProject/ergaki

Rollerchain consensus

Sigmacoin

Github: https://github.com/ScorexProject/Scorex

Maillist: https://scorex-dev.groups.io/g/main

: https://iohk.io/team/

Mail: [email protected]

?

/

/