Java

Verify4j

Эх код: https://github.com/teo-mn/verify4j

Verify Issuer нь сертификат, диплом, дансны хуулга зэрэг бичиг баримтыг блокчэйн дээр баталгаажуулж өгөх https://github.com/corex-mn/certify-sc ухаалаг гэрээний java хэл дээрх сан юм.

  • Тестнэт-тэй холбогдох нөүд: https://node-testnet.teo.mn

  • Тестнэт дээрх ухаалаг гэрээний хаяг: 0xcc546a88db1af7d250a2f20dee42ec436f99e075

  • Тестнэт chainId: 3305

  • Майннэт-тэй холбогдох нөүд: https://node.teo.mn

  • Майннэт дээрх ухаалаг гэрээний хаяг: 0x5d305D8423c0f07bEaf15ba6a5264e0c88fC41B4

  • Майннэт chainId: 1104

Суулгах заавар:

Доорх dependency -ийг pom.xml дотор оруулах.

<dependency>
    <groupId>io.corexchain</groupId>
    <artifactId>verify4j</artifactId>
    <version>1.6-SNAPSHOT</version>
</dependency>

Доорх repository -ийг /m2/settings.xml дотор оруулах.

<repository>
    <id>central-sona</id>
    <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
      <enabled>true</enabled>
    </releases>
</repository>

Классууд

PdfIssuer

PDF файлын хаш утгыг тооцож ухаалаг гэрээнд бичээд, гүйлгээний мэдээлэл болон нэмэлт мэдээллүүдийг файлын мэтадата дээр нэмж шинэ файлд хадгална.

Байгуулагчийн параметр:

issue функцийн параметр:

Метадата дээр бичигдэх өгөгдлийн хэлбэр:

verifymn: {
    issuer: {
        name: "",
        address: ""
    },
    info: {
        name: "",
        desc: "",
        cerNum: "",
        additionalInfo: ""
    },
    version: "",
    blockchain: {
         network: "",
         smartContractAddress: ""
    }
}

Жишээ

PdfIssuer pdfIssuer = new PdfIssuer(
                "smartContractAddress",
                "issuerAddress",
                "issuerName",
                "nodeHost",
                3305
      );

String transactionID;
try {
    transactionID = pdfIssuer.issue(
            "id",
            "sourceFilePath",
            "destinationFilePath",
            "expireDate",
            "desc",
            "additionalInfo",
            "privateKey"
    );
    System.out.printf("Success: %s", transactionID);

} catch (Exception e) {
    System.out.printf("Error: %s", e);
}

verifyPdf

Блокчэйн дээр баталгаажсан PDF файлыг шалгах

Байгуулагчийн параметр:

verifyPdf функцийн параметр:

Жишээ

PdfIssuer pdfIssuer = new PdfIssuer(
                "smartContractAddress",
                "issuerAddress",
                "issuerName",
                "nodeHost",
                3305
      );

try {
    VerifyResult result = pdfIssuer.verifyPdf("filePath");

    System.out.printf("State: %s\n", result.getState());
    System.out.printf("Issuer: %s\n", result.getIssuer());
    System.out.printf("Meta-data: %s\n", result.getMetadata());
    System.out.printf("Cert: %s", result.getCert());

} catch (Exception e) {
    System.out.printf("Error: %s", e);
}

Гаралтын формат

public class VerifyResult {

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public CertificationRegistration.Certification getCert() {
        return cert;
    }

    public void setCert(CertificationRegistration.Certification cert) {
        this.cert = cert;
    }

    public CertificationRegistration.Issuer getIssuer() {
        return issuer;
    }

    public void setIssuer(CertificationRegistration.Issuer issuer) {
        this.issuer = issuer;
    }

    public String getMetadata() {
        return metadata;
    }

    public void setMetadata(String metadata) {
        this.metadata = metadata;
    }

    private String state;
    private String metadata;
    private CertificationRegistration.Certification cert;
    private CertificationRegistration.Issuer issuer;

    public VerifyResult(CertificationRegistration.Certification cert, String state) {
        this.state = state;
        this.cert = cert;
        this.metadata = "";
    }

    public VerifyResult(CertificationRegistration.Certification cert,
                        CertificationRegistration.Issuer issuer, String state) {
        this.state = state;
        this.cert = cert;
        this.issuer = issuer;
        this.metadata = "";
    }
}

state нь "ISSUED", "REVOKED", "EXPIRED" төлвүүдийн аль нэгийг авна. "ISSUED" нь хүчинтэй, "EXPIRED" нь хугацаа нь дууссан, "REVOKED" нь хүчингүй болгсон байна. cert утга нь сертификатын блокчэйн дээр бүртгэгдсэн мэдээлэл. issuer нь оруулсан байгууллагын мэдээлэл.

JsonIssuer

JSON файлын хаш утгыг тооцож ухаалаг гэрээнд бичээд, гүйлгээний мэдээлэл болон нэмэлт мэдээллүүдийг файлын мэтадата дээр нэмж шинэ файлд хадгална.

Байгуулагчийн параметр:

issue функцийн параметр:

Метадата дээр бичигдэх өгөгдлийн хэлбэр:

verifymn: {
    issuer: {
        name: "",
        address: ""
    },
    info: {
        name: "",
        desc: "",
        cerNum: "",
        additionalInfo: ""
    },
    version: "",
    blockchain: {
         network: "",
         smartContractAddress: ""
    }
}

Жишээ

JsonIssuer issuer = new JsonIssuer(
        "smartContractAddress",
        "issuerAddress",
        "issuerName",
        "nodeHost",
        3305
    );

String transactionID;
try {
    transactionID =  issuer.issue(
            "id",
            "sourceFilePath",
            "destinationFilePath",
            "expireDate",
            "desc",
            "additionalInfo",
            "privateKey"
    );
    System.out.printf("Success: %s", transactionID);
} catch (Exception e) {
    System.out.printf("Error: %s", e);
}

verifyJson

Блокчэйнд баталгаажуулсан JSON файлыг шалгах

Байгуулагчийн параметр:

verifyJson функцийн параметр:

Жишээ

JsonIssuer issuer = new JsonIssuer(
        "smartContractAdress",
        "issuerAddress",
        "issuerName",
        "nodeHost",
        3305
    );

try {
    VerifyResult result = issuer.verifyJson("filePath");
    System.out.printf("Result: %s", result.getState());

} catch (Exception e) {
    System.out.printf("Error: %s", e);
}