Code Monkey home page Code Monkey logo

market-service's Introduction

market-service

Introduction

This repository provide market product list service for Nine Chronicles

Installation

How to run

Set environment

you can edit launchSettings.json for run configuration and run service.

VALUE DESCRIPTION
ConnectionStrings__MARKET database path for market service
RpcConfig__Host NineChronicles.Headless node host for sync market products
RpcConfig__Port NineChronicles.Headless node port
WorkerConfig__SyncShop if true, sync registered ShardedShopStateV2 Orders
WorkerConfig__SyncProduct if true, sync registered MarketState Products
$ dotnet run --project MarketService

market-service's People

Contributors

ipdae avatar limebell avatar riemannulus avatar onedgelee avatar boscohyun avatar u-lis avatar unengine avatar greymistcube avatar area363 avatar sonohoshi avatar

Stargazers

seonghwan avatar Lee Jae-yeol avatar Topten1004 avatar Lee Dogeon avatar

Watchers

Swen Mun avatar jckim.xyz avatar Junyong avatar  avatar Colibri Shin avatar  avatar Akamig avatar  avatar

market-service's Issues

GraphQL 마이그레이션

DLL로 관리되고 있는 MarketSerivce.Response 대신 GraphQL 스키마와 API를 제공해서 클라이언트에서 사용가능하게 합니다.

싱크시간 줄이기

현재 구조는 모든 목록을 돌면서 싱크하는 방식. ef core가 thread safe하지 않음. 결국 돌아야할 목록이 많아질수록 동기화 시간이 오래 걸리게 된다.
시도해볼만한 방법들

  • getState 호출 부분만 병렬화해서 합친다.
  • 상태를 가져오고 있는 grpc 서버측에서 마켓 관련 액션렌더시에 변경될 상태를 알려준다

크리스탈 타입 변경

FAV는 BigInteger를 쓰고 있지만 직렬화 문제때문에 서비스는 임시로 int 타입을 쓰고 있었습니다. 이 문제때문에 overflow exception이 발생하고 있는데 타입의 변경이 필요합니다.

Unity Editor 에서 dll 로딩시 발생하는 에러

image
Unable to load attribute info on field MarketService.Response.FungibleAssetValueProductResponseModel::<ProductId>k__BackingField. Are you missing a reference?
Unloading broken assembly Assets/Packages/MarketService.Response.dll, this assembly can cause crashes in the runtime

Add Exp field to Equipment model

Since Equipment model has been changed (Exp field is added), market service should apply this change.
But currently no Exp data is shown in game UI, this is not in rush.

product id를 인자로 받으면 product를 반환하는 API 추가

실제 체인에서는 액션을 통해 product의 상태가 변경되면 해당 상태를 비우게 됩니다.(BencodxTypes.Null을 상태에 저장)
9c의 메일에서는 이런 상태를 비운 product의 정보를 띄워야해서 문제가 생기는데, 이 부분을 지원하기 위한 API를 추가해야합니다.

필터추가

  • ticker를 like로 찾았을때 사이드 이펙트 조사
  • 아이템필터에 추가로 스탯타입을 받을 수 있는지 조사

금액 필드 타입 변경

현재 decimal로 설정되있는 price, quantity(FavProduct 금액때문)의 타입을 int(또는 numeric)으로 변경합니다.
원래 단위는 BigInteger지만 json 전송시의 문제때문에 decimal 로 적용을 해놨는데, 실제 마켓 관련 액션에서는 금액에 관련된 부분에 소수점을 허용하지않고 정수타입만 지원하기때문에 타입을 단순화하는것이 유리합니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.