Commit a26d6362 authored by Konstantin Munichev's avatar Konstantin Munichev
Browse files

[dlt] Basic functionality (localhost only):

- User registration
- User enrollment
- Chaincode calls
parent 62e71c6a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -87,3 +87,4 @@ gradle-app.setting
.gradletasknamecache

local.properties
wallet/
 No newline at end of file
+2 −1
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@ repositories {
}

dependencies {
    testImplementation(kotlin("test"))
    testImplementation("org.jetbrains.kotlin:kotlin-test:1.5.31")
    implementation("org.hyperledger.fabric:fabric-gateway-java:2.2.2")
}

tasks.test {
+14 −0
Original line number Diff line number Diff line
-----BEGIN CERTIFICATE-----
MIICJzCCAc2gAwIBAgIUM7WUuNZcyI0J3BBh9eFlxOsY4a0wCgYIKoZIzj0EAwIw
cDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH
EwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjExMTEyMTMzMzAwWhcNMzYxMTA4MTMzMzAw
WjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV
BAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT
Y2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABL0F
ui9MT98/o69MHruL95PgIAxRZi2mP2p7gUmtnloNUQGaL2g3Z6GyNhkHH4IDvfRJ
9iLZq9OCqDUMfZEAZm6jRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
AQH/AgEBMB0GA1UdDgQWBBQVa3OPpq/AE5p1DQ0Mso5k6BYBtTAKBggqhkjOPQQD
AgNIADBFAiEAnCgTuTugndbpJ89SQQjDtsfMaSNNVHz0qfM48cgpWHMCIF0oQMeS
+uaFc/EjaogACN3HI+A77Zyu94w9aiXMvs35
-----END CERTIFICATE-----
+63 −0
Original line number Diff line number Diff line
---
name: test-network-org1
version: 1.0.0
client:
  organization: Org1
  connection:
    timeout:
      peer:
        endorser: '300'
organizations:
  Org1:
    mspid: Org1MSP
    peers:
    - peer0.org1.example.com
    certificateAuthorities:
    - ca.org1.example.com
peers:
  peer0.org1.example.com:
    url: grpcs://localhost:7051
    tlsCACerts:
      pem: |
          -----BEGIN CERTIFICATE-----
          MIICJzCCAc2gAwIBAgIUM7WUuNZcyI0J3BBh9eFlxOsY4a0wCgYIKoZIzj0EAwIw
          cDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH
          EwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
          Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjExMTEyMTMzMzAwWhcNMzYxMTA4MTMzMzAw
          WjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV
          BAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT
          Y2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABL0F
          ui9MT98/o69MHruL95PgIAxRZi2mP2p7gUmtnloNUQGaL2g3Z6GyNhkHH4IDvfRJ
          9iLZq9OCqDUMfZEAZm6jRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
          AQH/AgEBMB0GA1UdDgQWBBQVa3OPpq/AE5p1DQ0Mso5k6BYBtTAKBggqhkjOPQQD
          AgNIADBFAiEAnCgTuTugndbpJ89SQQjDtsfMaSNNVHz0qfM48cgpWHMCIF0oQMeS
          +uaFc/EjaogACN3HI+A77Zyu94w9aiXMvs35
          -----END CERTIFICATE-----
          
    grpcOptions:
      ssl-target-name-override: peer0.org1.example.com
      hostnameOverride: peer0.org1.example.com
certificateAuthorities:
  ca.org1.example.com:
    url: https://localhost:7054
    caName: ca-org1
    tlsCACerts:
      pem: 
        - |
          -----BEGIN CERTIFICATE-----
          MIICJzCCAc2gAwIBAgIUM7WUuNZcyI0J3BBh9eFlxOsY4a0wCgYIKoZIzj0EAwIw
          cDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH
          EwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
          Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjExMTEyMTMzMzAwWhcNMzYxMTA4MTMzMzAw
          WjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV
          BAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT
          Y2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABL0F
          ui9MT98/o69MHruL95PgIAxRZi2mP2p7gUmtnloNUQGaL2g3Z6GyNhkHH4IDvfRJ
          9iLZq9OCqDUMfZEAZm6jRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
          AQH/AgEBMB0GA1UdDgQWBBQVa3OPpq/AE5p1DQ0Mso5k6BYBtTAKBggqhkjOPQQD
          AgNIADBFAiEAnCgTuTugndbpJ89SQQjDtsfMaSNNVHz0qfM48cgpWHMCIF0oQMeS
          +uaFc/EjaogACN3HI+A77Zyu94w9aiXMvs35
          -----END CERTIFICATE-----
          
    httpOptions:
      verify: false
+33 −3
Original line number Diff line number Diff line
import fabric.enrollAdmin
import fabric.registerUser
import org.hyperledger.fabric.gateway.Gateway
import org.hyperledger.fabric.gateway.Network
import org.hyperledger.fabric.gateway.Wallets
import java.nio.file.Paths

// helper function for getting connected to the gateway
fun connect(): Gateway {
    // Load a file system based wallet for managing identities.
    val walletPath = Paths.get("wallet")
    val wallet = Wallets.newFileSystemWallet(walletPath)
    // load a CCP
    val networkConfigPath = Paths.get("connection-org1.yaml")
    val builder = Gateway.createBuilder()
    builder.identity(wallet, "appUser1").networkConfig(networkConfigPath).discovery(true)
    return builder.connect()
}

fun main(args: Array<String>) {
    println("Hello World!")
    System.setProperty("org.hyperledger.fabric.sdk.service_discovery.as_localhost", "true")

    // Try adding program arguments at Run/Debug configuration
    println("Program arguments: ${args.joinToString()}")
    enrollAdmin()
    registerUser()

    // connect to the network and invoke the smart contract
    connect().use { gateway ->
        // get the network and contract
        val network: Network = gateway.getNetwork("mychannel")
        val contract = network.getContract("basic")
        println("Submit Transaction: InitLedger creates the initial set of assets on the ledger.")
        contract.submitTransaction("InitLedger")
        val result = contract.evaluateTransaction("GetAllAssets")
        println("Evaluate Transaction: GetAllAssets, result: " + String(result))
    }
}
 No newline at end of file
Loading