| from rest_framework import serializers | |
| from .models import ProofOfCompute, ValidatorNode, Verification, VerificationTask | |
| class ValidatorNodeSerializer(serializers.ModelSerializer): | |
| username = serializers.CharField(source="user.username", read_only=True) | |
| class Meta: | |
| model = ValidatorNode | |
| fields = [ | |
| "id", | |
| "user", | |
| "username", | |
| "staked_amount_usd", | |
| "status", | |
| "total_verifications", | |
| "correct_verifications", | |
| "incorrect_verifications", | |
| "accuracy_score", | |
| "total_rewards_earned", | |
| "created_at", | |
| "updated_at", | |
| ] | |
| read_only_fields = [ | |
| "id", | |
| "user", | |
| "username", | |
| "status", | |
| "total_verifications", | |
| "correct_verifications", | |
| "incorrect_verifications", | |
| "accuracy_score", | |
| "total_rewards_earned", | |
| "created_at", | |
| "updated_at", | |
| ] | |
| class VerificationTaskSerializer(serializers.ModelSerializer): | |
| job_id = serializers.CharField(source="job.id", read_only=True) | |
| verification_count = serializers.SerializerMethodField() | |
| valid_count = serializers.SerializerMethodField() | |
| invalid_count = serializers.SerializerMethodField() | |
| class Meta: | |
| model = VerificationTask | |
| fields = [ | |
| "id", | |
| "job", | |
| "job_id", | |
| "status", | |
| "required_validators", | |
| "consensus_result", | |
| "consensus_reached_at", | |
| "verification_count", | |
| "valid_count", | |
| "invalid_count", | |
| "created_at", | |
| "updated_at", | |
| ] | |
| read_only_fields = [ | |
| "id", | |
| "job", | |
| "job_id", | |
| "status", | |
| "consensus_result", | |
| "consensus_reached_at", | |
| "created_at", | |
| "updated_at", | |
| ] | |
| def get_verification_count(self, obj): | |
| return obj.verifications.count() | |
| def get_valid_count(self, obj): | |
| return obj.verifications.filter(result="valid").count() | |
| def get_invalid_count(self, obj): | |
| return obj.verifications.filter(result="invalid").count() | |
| class VerificationSerializer(serializers.ModelSerializer): | |
| validator_username = serializers.CharField( | |
| source="validator.user.username", read_only=True | |
| ) | |
| class Meta: | |
| model = Verification | |
| fields = [ | |
| "id", | |
| "task", | |
| "validator", | |
| "validator_username", | |
| "result", | |
| "confidence", | |
| "evidence", | |
| "created_at", | |
| ] | |
| read_only_fields = ["id", "validator", "validator_username", "created_at"] | |
| class ProofOfComputeSerializer(serializers.ModelSerializer): | |
| job_id = serializers.CharField(source="job.id", read_only=True) | |
| class Meta: | |
| model = ProofOfCompute | |
| fields = [ | |
| "id", | |
| "job", | |
| "job_id", | |
| "hash_signature", | |
| "tee_attestation", | |
| "validator_signatures", | |
| "verified_at", | |
| ] | |
| read_only_fields = ["id", "job", "job_id", "verified_at"] | |
Xet Storage Details
- Size:
- 3.26 kB
- Xet hash:
- fbe55ac00168bd0673882246bc34b7370ef01d3941778bd544340a0ae6709cf9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.